64位Windows2008系统下IIS7和Tomcat7整合共用80端口(完整版)

时间:2020-12-21 11:28:54

加一点自己的东西:

从没有接触过服务器的小白在几天之内要完成windows服务器与linux服务器的配置,当时真的非常紧张。我们的服务器上面有其他的项目占用了80端口,如果需要绑定域名能够让在微信中访问不提示危险网站必须使用80端口(访问80端口是不需要输入端口号的 比如一般测试是使用的8080端口访问时需要输入 http://域名:8080/项目名 使用80端口则为http://域名/项目名  具体的项目和写法看自己的设定 此处只说明端口的问题)。更让人无语的是服务器上另一个项目不是java web项目 是.net的项目。我们使用的是javaweb项目和 tomcat。如果按照常规的说法应该是修改tomcat下的server.xml配置文件的信息,绑定域名和设计端口。当这样设置以后还是不能够访问到项目每次都会报服务器的错误。 最后找寻资料说要使用iis映射到tomcat才行。找了很多的资料经过了一个通宵,成功地解决了问题。下面是比较全面的教程(注意:配置过程一定要慢慢来 不然忘了一下或者随便弄很可能会浪费更多的时间)。在完成配置和使用一段时间后服务器就变得不那么神秘了。
IIS7已经正确安装(80端口)

一、安装软件JRE7,安装路径为D:\java\Jre6。

二、安装软件Tomcat7,安装路径为D:\Tomcat7。并启动TOMCAT,测试http://localhost:8080能否访问。
(提示:以上2个软件安装路径最好不要有空格,这两步确保没有问题,tomcat能够正常访问之后再进行整合)

三、导入注册表文件
新建tomcat_IIS.reg文件,打开写入下面内容(D://tomcat7服务器Tomcat安装路径):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="D://tomcat7//logs"
"log_level"="debug"
"tomcat_start"="D://tomcat7//bin//tomcat.bat start"
"tomcat_stop"="D://tomcat7//bin//tomcat.bat stop"
"worker_file"="D://tomcat7//conf//workers.properties"
"worker_mount_file"="D://tomcat7//conf//uriworkermap.properties"

注意:
1,导入注册表后一定要使用regedit打开注册表,查看是否导入成功。注册表中是否包含上述的项和字符串值。
2,网上很多教程导入注册表位置为[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]
这是个错误的位置,会导致isapi_redirect.dll无法加载从而在IIS下添加Isapi筛选器之后访问放在文件(JSP或者PHP文件都出现错误)出现500错误。
64位操作系统的正确位置是[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0]

四、在tomcat安装目录下conf文件夹下建立两个文件

文件1:workers.properties
workers.tomcat_home=D:\Tomcat7\
workers.java_home=D:\java\Jre6
ps=\ 
worker.list=zouyi615   #zouyi615为访问Tomcat服务器的一个标签,可以选择多个,用逗号隔开
worker.zouyi615 .port=8009
worker.zouyi615 .host=localhost
worker.zouyi615 .type=ajp13
worker.zouyi615 .lbfactor=1

文件2:uriworkermap.properties
/*.jsp=zouyi615   #该域名下的所有.jsp文件转给Tomcat服务器处
/system/=zouyi615  #访问system目录时转到Tomcat服务器处理
/system/*.jsp=zouyi615  #system下.jsp文件转到Tomcat服务器处理
/system/*=zouyi615   #system下所有文件转到Tomcat服务器处理

#/system/该目录为tomcat服务器webapp目录下的一个文件夹,/system/下的所有文件都可以通过IIS访问

五、拷贝isapi_redirect.dll到tomcat安装目录下conf文件夹
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/下下载tomcat-connectors-1.2.37-windows-i386-iis.zip,并将解压后的isapi_redirect.dll放置在{tomcat_home}/jk下,并在该目录下建立isapi_redirect.properties,内容如下

六、打开IIS7.5,点击左边的计算机名(而不是在网站目录下面,网站目录下是找不到"ISAPI和CGI限制"这个选项的)。
在IIS管理器中的“ISAPI和CGI限制”里面右键添加,路径选择为tomcat安装目录下conf文件夹的isapi_redirect.dll,并设定“允许执行扩展路径”,描述名可取jakarta

七、接着单击Default Web Site(或者你的任一个网站目录,下面的Default Web Site和这个相同,一般IIS7服务器都可以设置多个网站目录,比如我的就是在demo.uprui.com这个目录下操作的。),选择ISAPI筛选器,并右键添加筛选器,名称可取jakarta,可执行文件选择tomcat安装目录下conf文件夹isapi_redirect.dll。

八、在Default Web Site上右键"添加虚拟目录",别名取jakarta(必须是jakarta名称,名称必须和注册表里"extension_uri"的值的名字一致),路径指向tomcat安装目录下conf文件夹,即isapi_redirect.dll所在目录。注意,此处要看IIS用户是否能够访问网站目录,如果不能可以用管理员权限用户。

九、点击虚拟目录jakarta,双击“处理程序映射”,最右边(第三分栏里面)选择“编辑功能权限...”将所有权限(执行权限)选上。

十、在Default Web Site上,双击“处理程序映射”,右键"添加脚本映射",请求路径写*.jsp,可执行文件选择tomcat安装目录下conf文件夹isapi_redirect.dll。名称随便写,例如JSP。

常见错误:
1.问:没有配置成功,IIS测试访问JSP页面出现500错误:
HTTP 错误 500.0 - Internal Server Error
调用 GetFilterVersion 失败,在 ISAPI 筛选器 "D:\soft\tomcat7\conf\isapi_redirect.dll" 上。
答:注册表导入位置不对或根本没有导入注册表。手动写注册表或更改位置。
64位操作系统的正确位置是[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
2.访问php页面正常,访问JSP页面显示空白,但不提示错误信息。
答:访问JSP没有错误提示,说明注册表是正确的,一般是IIS用户访问Tomcat目录权限的问题。还有就是Isapi是否加载问题