详细图解IIS和tomcat共用80端口

我们部署项目时很多时候需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,以下是具体步骤:

实现tomcat6.0和iis6共用80端口的思路其实就是利用iis可以建立多个网站的功能,将tomcat下的项目添加为iis的一个站点,再使用一个可以redirect的插件,将iis中指向此站点的请求交给tomcat来处理。

1、 首先,需要一个可以实现redirect的插件isapi_redirect,可以到网上下载,我使用的是isapi_redirect-1.2.14.dll;

2、然后,在随便哪个地方建立一个注册表编辑文件.reg,并输入以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation]

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]

"extension_uri"="/jakarta/isapi_redirect.dll" /*文件名称可以改,路径最好别改,因为要和iis中的筛选器配置对应*/

"worker_file"="C:\\Tomcat 6.0\\conf\\workers.properties" /*具体由自己的路径定/ "worker_mount_file"="C:\\Tomcat 6.0\\conf\\uriworkermap.properties" /*同上*/ "log_file"="C:\\Tomcat 6.0\\logs\\isapi.log"

"log_level"="info"

/*以上红色的地方以tomcat的实际所在位置为准*/

3、在tomcat的conf文件夹下建立workers.properties文件,并输入以下内容: worker.list=ajp13

worker.ajp13.type=ajp13

worker.ajp13.host=localhost

worker.ajp13.port=8009

4、同样建立uriworkermap.properties内容如下

/*.jsp=ajp13

/*.do=ajp13

/*=ajp13

5、在tomcat的log目录下建立isapi.log文件,内容为空即可

6、Tomcat6.0目录下新建jakarta文件夹,然后把isapi_redirect.dll放入其中.

7、配置tomcat的server.xml文件

在<Engine></Engine>节点下,修改

<Host name="" appBase="webapps"

unpackWARs="true"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="qms" debug="0" reloadable="true" /> </Host>

的内容,name为网站要设的域名,下面在iis里新建网站的时候域名要和这个一样;docBase的值为网站文件夹,即”.. Tomcat 6.0\webapps\”下项目文件夹的名称;

8、运行.reg文件, 并打开HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0项,检查右边项目中是否包含如下项:

extension_uri /jakarta/isapi_redirect.dll (jakarta为IIS下的虚拟目录)

log_file c:\Tomcat6.0\logs\isapi.log (指定JK插件使用的日志文件)

log_level debug (指定日志级别)

worker_file c:\Tomcat6.0\conf\workers.properties (指定JK插件的工作文件)

worker_mount_file c:\ Tomcat6.0\conf\uriworkermap.properties (指定JK插件的URL映射) 如果没有上述项,则建立相关项和相关值

9、以上为tomcat配置;

10、打开“管理工具”-“Internet信息服务(IIS)管理器”,展开“本地计算机”,选择网站,如图:

详细图解IIS和tomcat共用80端口

在右侧点右键,新建-网站,点击“下一步”,输入网站描述(内容随便),点击“下一步”,输入“主机头”,如图:

详细图解IIS和tomcat共用80端口

主机头是访问的域名。要和tomcat中conf/service.xml中的Host 中的name相对应

下一步,选择主目录(tomcat下webapps里的项目根目录,只指到webapps这个文件夹也是可以的),勾选“运行匿名访问”,如图:

详细图解IIS和tomcat共用80端口

下一步,在“允许权限”里,勾选“执行…”选项,以支持isapi_redirect,如图:

详细图解IIS和tomcat共用80端口

下一步,完成网站新建。

11、在新建的网站上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入isapi_redirect-1.2.14.dll的绝对路径(包括文件名),如图:

详细图解IIS和tomcat共用80端口

一路确定。

12、再在“此网站”上右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector.dll存放的目录(不包括文件名),下一步,权限中记得把“执行”那项打勾,好了,完成。

13、应用程序扩展名映射:在主目录里点配置,在跳出的窗口应用程序配置中增加.jsp应用程序扩展名映射,可执行文件指向isapi_redirect-1.2.14.dll文件,动作限制为

GET,HEAD,POST,DEBUG (手动输入)如图:

详细图解IIS和tomcat共用80端口

14、在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,

详细图解IIS和tomcat共用80端口

弹出的框中扩展名填JSP(无所谓的,自己随便设置名称),“要求的文件”选“添加”然后找到你的isapi_redirector.dll后“确定”。 “设置扩展状态为允许”也打上勾,确定。添加之后,如图:

详细图解IIS和tomcat共用80端口

15、重启IIS,重启Tomcat.

重启IIS的方法: IIS中选择 本地计算机项 右键/所有任务/重新启动

详细图解IIS和tomcat共用80端口

IIS(R)

详细图解IIS和tomcat共用80端口

点击确定就可以重起

至于tomcat的重起方法在这就不用说了

16、检查新建的网站是否加载成功isapi_redirect-1.2.14.dll文件,在网站的属性里,切到筛选器页,

详细图解IIS和tomcat共用80端口

如图则加载成功。

如果不出现箭头或者出现红色的向下箭头就说明加载不失败,解决的方法就是给jakarta赋于权限,在相应的网站下选择jakarta/权限 如下图:

详细图解IIS和tomcat共用80端口

点击权限进入如下图:

详细图解IIS和tomcat共用80端口

至少要有如上图中的4个用户,如果不全就添加,用户可以多个,看情况而定的。

如果设置完后还是未能加载就再重起IIS,

以下为tomcat中的conf/service.xml 文件的部分配置:

详细图解IIS和tomcat共用80端口

注意:tomcat是用60000(非80端口),而IIS中的用80端口。

详细图解IIS和tomcat共用80端口

操作完以上操作后IIS与tomcat就算整合完成了。

在这个过程中可能会遇到一些问题:

1., 起动tomcat时出现:

详细图解IIS和tomcat共用80端口

出现这个问题是由于端口被占用的原因,就是ISS中有网网站和tomcat的监听端口相同冲突了(我这里用的是60000),改变它们的监听端口就可以了。

2,如果在IIS中浏览时出现 函数不正确。就得把isapi_redirect-1.2.14.dll换掉,要用安装版的,注意在IIS中有指向isapi_redirect-1.2.14.dll的路径要相应的指向它的安装路径中下的conf下的文件isapi_redirect.dll。

17、测试http:// sysokean.qms

 

第二篇:Apache和IIS共用80端口四法

为调试程序,本机安装iis与apache,无法同时使用80端口,现给出解决方法:  方法一:  IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2  c:\Inetpb\Adminscipts  cscipt adsti.vbs set w3svc/disabesocketpooing te  该命令反馈如下disabesocketpooing : (BOOEAN) Te  重启IIS  Inetpb\AdminScipts>cscipt adsti.vbs set w3svc/disabesocketpooing te  由于 DisabeSocketPooing 在 IIS 6.0 元数据库架构 (MBSchema.xm) 中被定义为有效属性,所以,您仍然可以使用 Adsti.vbs 设置该属性,但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序 HTTP.sys 的一部分。要配置 HTTP.sys,您必须使用 Httpcfg.exe  方法二:  IIS6,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址  到2003的CD下的 sppot/toos/Sppot.cab。解压出httpcfg.exe文件,COPY到windows/system32/目录下,用法自己看帮助  命令行  绑定到某IP: httpcfg set ipisten -i 192.168.0.1  即命令使用IIS的只[非法字节]指定的IP及端口  查看绑定: httpcfg qey ipisten  删除绑定: httpcfg deete ipisten -i 192.168.0.1  命令行  net stop Apache2  net stop iisadmin /y  net STAT Apache2  net STAT w3svc  保证iis下的ip设置为全局默认,Apache中httpconf设置isten 192.168.0.2:80,就应该可以两个服务同时运行,相互不冲突了。  IIS的访问地址为http://192.168.0.1,Apache访问地址为http://192.168.0.2  方法三:  将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。  在httpd.conf里面,取消下面四行的注释:  oadMode poxy_mode modes/mod_poxy.so  oadMode poxy_connect_mode modes/mod_poxy_connect.so  oadMode poxy_http_mode modes/mod_poxy_http.so  oadMode poxy_ftp_mode modes/mod_poxy_ftp.so  然后建立一个虚拟主机,将该域名的所有访问转向81端口。  <VitaHost *:80>  SeveName   PoxyPass / http://ocahost:81/  PoxyPassevese / http://ocahost:81/  </VitaHost>  这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了  方法四:  网上常用的单IP共用80端口方法,不过不推荐,只是使用Apache的代理,速度有影响将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。  在httpd.conf里面,取消下面四行的注释:  oadMode poxy_mode modes/mod_poxy.so  oadMode poxy_connect_mode modes/mod_poxy_connect.so  oadMode poxy_http_mode modes/mod_poxy_http.so  oadMode poxy_ftp_mode modes/mod_poxy_ftp.so  然后建立一个虚拟主机,将该域名的所有访问转向81端口。  SeveName   PoxyPass / http://ocahost:81/  

PoxyPassevese / http://ocahost:81/  这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了  类推,使用第二种方法,你可以在IIS上配置PHP4,Apache2中配置PHP5,只需要IIS中安装PHP4,把php.ini复制到\windows目录即可,这个就不用说了吧,Apache2中,只要把PHP5的php.ini放在PHP5安装目录里面就行了  配置Apache以支持PHP5:  oadMode php5_mode “D:/PHPSeve/PHP5/php5apache2.d”  AddType appication/x-httpd-php .php  DiectoyIndex index.htm index.php  PHPIniDi “D:/PHPSeve/PHP5″  其中最重要的一条就是 PHPIniDi,用来指明php.ini文件所在位置,即PHP5的安装目录,注意所有目录的应该改为D:/PHPSeve/PHP5这种格式,而非D:\PHPSeve\PHP5,IIS的访问地址为http://192.168.0.1,Apache访问地址为http://192.168.0.2本篇文章来源于 奇虎技术吧-中国最大的网络安全站点 原文链接:/thread-36874-1-1.html

相关推荐