64位Windows2008系统下IIS7和Tomcat7整合共用80端口如何解决

     加一点自己的东西:

    从没有接触过服务器的小白在几天之内要完成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是否加载问题