64位Windows2008系统下IIS7和Tomcat7整合共用80端口如何解决
加一点自己的东西:
从没有接触过服务器的小白在几天之内要完成windows服务器与linux服务器的配置,当时真的非常紧张。我们的服务器上面有其他的项目占用了80端口,如果需要绑定域名能够让在微信中访问不提示危险网站必须使用80端口(访问80端口是不需要输入端口号的比如一般测试是使用的8080端口访问时需要输入http://域名:8080/项目名使用80端口则为http://域名/项目名 具体的项目和写法看自己的设定此处只说明端口的问题)。更让人无语的是服务器上另一个项目不是javaweb项目是.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安装路径):
WindowsRegistryEditorVersion5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ApacheSoftwareFoundation\JakartaIsapiRedirector\1.0] "extension_uri"="/jakarta/isapi_redirect.dll" "log_file"="D://tomcat7//logs" "log_level"="debug" "tomcat_start"="D://tomcat7//bin//tomcat.batstart" "tomcat_stop"="D://tomcat7//bin//tomcat.batstop" "worker_file"="D://tomcat7//conf//workers.properties" "worker_mount_file"="D://tomcat7//conf//uriworkermap.properties"
注意:
1,导入注册表后一定要使用regedit打开注册表,查看是否导入成功。注册表中是否包含上述的项和字符串值。
2,网上很多教程导入注册表位置为[HKEY_LOCAL_MACHINE/SOFTWARE/ApacheSoftwareFoundation/JakartaIsapiRedirector/1.0]
这是个错误的位置,会导致isapi_redirect.dll无法加载从而在IIS下添加Isapi筛选器之后访问放在文件(JSP或者PHP文件都出现错误)出现500错误。
64位操作系统的正确位置是[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ApacheSoftwareFoundation\JakartaIsapiRedirector\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
七、接着单击DefaultWebSite(或者你的任一个网站目录,下面的DefaultWebSite和这个相同,一般IIS7服务器都可以设置多个网站目录,比如我的就是在demo.uprui.com这个目录下操作的。),选择ISAPI筛选器,并右键添加筛选器,名称可取jakarta,可执行文件选择tomcat安装目录下conf文件夹isapi_redirect.dll。
八、在DefaultWebSite上右键"添加虚拟目录",别名取jakarta(必须是jakarta名称,名称必须和注册表里"extension_uri"的值的名字一致),路径指向tomcat安装目录下conf文件夹,即isapi_redirect.dll所在目录。注意,此处要看IIS用户是否能够访问网站目录,如果不能可以用管理员权限用户。
九、点击虚拟目录jakarta,双击“处理程序映射”,最右边(第三分栏里面)选择“编辑功能权限...”将所有权限(执行权限)选上。
十、在DefaultWebSite上,双击“处理程序映射”,右键"添加脚本映射",请求路径写*.jsp,可执行文件选择tomcat安装目录下conf文件夹isapi_redirect.dll。名称随便写,例如JSP。
常见错误:
1.问:没有配置成功,IIS测试访问JSP页面出现500错误:
HTTP错误500.0-InternalServerError
调用GetFilterVersion失败,在ISAPI筛选器"D:\soft\tomcat7\conf\isapi_redirect.dll"上。
答:注册表导入位置不对或根本没有导入注册表。手动写注册表或更改位置。
64位操作系统的正确位置是[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ApacheSoftwareFoundation\JakartaIsapiRedirector\1.0]
2.访问php页面正常,访问JSP页面显示空白,但不提示错误信息。
答:访问JSP没有错误提示,说明注册表是正确的,一般是IIS用户访问Tomcat目录权限的问题。还有就是Isapi是否加载问题