需求:客户的服务器由我及他自己的技术人员维护,服务器上有多个
WEB
在运营,
ASP
、
PHP
、
JAVA
的混合着都有,原先的
WEB
架构是
Nginx+Apache+IIS+X*Tomcat
,但客户的技术人员时常要对一些小站点
[ASP
、
PHP]
进行调整,如增删站点或做伪静态规则等处理,而此时问题出来了,客户技术员只对
IIS
配置熟悉,对配置
Nginx
、
Apache
这些很不熟悉,并且这些
WEB
站点也没什么访问量,所以基本上不用考虑性能这块。所以最终决定给全换成
IIS+X*Tomcat
,
ASP
、
PHP
全由
IIS
搞定。由于
IIS
配置与
PHP
的集成网上很多,所以这里我只记录
IIS
与
JAVA
服务器
Tomcat
的集成。
不知道我以这张图能不能说明我要表达的意思,一句话,把站点中URI请求以ejf后缀结尾的都转发给后端JAVA服务器tomcat来处理。好了,废话不多说了,准备实站开工。
1、第一步首先下载isapi_redirect.dll 文件,目前最新版本为1.2.31,下载地址为:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ 注意下载的版本与你的OS关系,我的服务器是使用的WIN 2003 32位版本。所以应该下载win32版本。将下载下来的isapi_redirect-1.2.31.dll放在tomcat7根目录下的jakarta目录中,当然你也可以随意的放在其它目录。
2、在jakarta目录下同时建立三个文件:install.reg、uriworkermap.properties、workers.properties,千万别在这三个文件中的配置没有完全对的情况下就导入install.reg这个文件到注册表中。
Install.reg文件内容:
Windows Registry Editor Version 5.00
- [-HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
- [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
- "extension_uri"="/jakarta/isapi_redirect-1.2.31.dll"
- "log_file"="D:\\usr\\local\\lyService\\tomcat\\tomcat7\\jakarta\\logs\\isapi.log"
- "log_level"="error"
- "worker_file"="D:\\usr\\local\\lyService\\tomcat\\tomcat7\\jakarta\\workers.properties"
- "worker_mount_file"="D:\\usr\\local\\lyService\\tomcat\\tomcat7\\jakarta\\uriworkermap.properties"
uriworkermap.properties文件内容
#所有请求后缀为ejf的URI都拦截转发给对应的后端JAVA服务器来处理
- /en.dgdy.cc/*.ejf=worker1
- /cn.dgdy.cc/*.ejf=worker2
workers.properties文件内容
- workers.java_home=D:\usr\local\lyService\java\jdk1.6.0_26
- ps=\
- worker.list=worker1,worker2
- #tomcat6 ajp13工作端口,tomcat此端口默认为8009,由于我这里需要配置两个#TOMCAT所以tomcat6的ajp13端口我修改为了8008,tomcat7对应的ajp13端口我修#改为了8010
- worker.worker1.port=8008
- #Tomcat服务器的地址
- worker.worker1.host=localhost
- #类型
- worker.worker1.type=ajp13
- #负载平衡因数
- worker.worker1.lbfactor=1
-
- #tomcat7的ajp13工作端口
- worker.worker2.port=8010
- worker.worker2.host=localhost
- worker.worker2.type=ajp13
- worker.worker2.lbfactor=1
3、到这里,针对Tomcat的配置处理就配置完了,接下来就是需要在IIS中进行配置,首先在IIS中建立对应的两个WEB站点,对应的目录也应该指向到与你tomcat配置虚拟主机所指向的同一个文件夹下。这里在IIS中的建立WEB站点与建立其它站点完全没有区别。
4、接下来就是比较重要的配置了,分别为这两个站点建立一个虚拟目录<jakarta>。注意此虚拟目录的路径一定要为tomcat7\jakarta这个目录,并且在此目录下一定要有最前面我们配置的三个配置文件及那个dll文件。
5、在IIS en.dgdy.cc站点上右键--->属性--->主目录,将执行权限设置为脚本和可执行文件。
再点击ISAPI筛选器打开如下窗口并进行配置,一定要注意可执行文件的引用位置一定要与上面的虚拟目录及注册表文件中配置的目录一致,切记切记。
6、添加一个新的WEB服务扩展
这里的扩展名不能随便乱改,要求的文件也一定要是对应目录下的那个dll文件,同时一定要把下面的“设置扩展状态为允许”勾上。切记切记。
7、好了,针对en.dgdy.cc 站点在IIS中的配置就完成了,同上步骤,把cn.dgdy.cc在IIS中的配置也配置上,并且把install.reg这个注册表文件导入到注册表中。这点千万也别忘了,如果配置完后再次分别打开这两个站点的属性面板切换到ISAPI筛选器选项卡面板中如果看到的都是绿色向上箭头则表示配置无误,反之如果是红色,则配置有问题或需要重启IIS服务器。如下图所示。
8、最后,如果都变成了绿色向上箭头,那么我们就来验证一下吧,如访问http://cn.dgdy.cc/html/callme.html?act=contact这个页面 如果页面中的留言验证码能出来,则表明配置成功。
最后的话:如果照着以上配置你确保一针一线都没有配错,但访问对应的动态页面还是不能转发给后端JAVA服务器来处理,则我能想的有可能你存在以下几点错误之一。
a)、服务器OS是64位,但你下载的是32位的dll类库文件,反之。。。。。。
b)、测试一下直接加上端口号连接你的tomcat服务器看是否能正常访问
c)、导入install.reg文件过早并且文件中的JDK或dll类库文件目录没有设置对
d)、RP问题。。。。。。