我们部署项目时很多时候需要同时使用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)管理器”,展开“本地计算机”,选择网站,如图:
在右侧点右键,新建-网站,点击“下一步”,输入网站描述(内容随便),点击“下一步”,输入“主机头”,如图:
主机头是访问的域名。要和tomcat中conf/service.xml中的Host 中的name相对应
下一步,选择主目录(tomcat下webapps里的项目根目录,只指到webapps这个文件夹也是可以的),勾选“运行匿名访问”,如图:
下一步,在“允许权限”里,勾选“执行…”选项,以支持isapi_redirect,如图:
下一步,完成网站新建。
11、在新建的网站上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入isapi_redirect-1.2.14.dll的绝对路径(包括文件名),如图:
一路确定。
12、再在“此网站”上右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector.dll存放的目录(不包括文件名),下一步,权限中记得把“执行”那项打勾,好了,完成。
13、应用程序扩展名映射:在主目录里点配置,在跳出的窗口应用程序配置中增加.jsp应用程序扩展名映射,可执行文件指向isapi_redirect-1.2.14.dll文件,动作限制为
GET,HEAD,POST,DEBUG (手动输入)如图:
14、在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,
弹出的框中扩展名填JSP(无所谓的,自己随便设置名称),“要求的文件”选“添加”然后找到你的isapi_redirector.dll后“确定”。 “设置扩展状态为允许”也打上勾,确定。添加之后,如图:
15、重启IIS,重启Tomcat.
重启IIS的方法: IIS中选择 本地计算机项 右键/所有任务/重新启动
IIS(R)
点击确定就可以重起
至于tomcat的重起方法在这就不用说了
16、检查新建的网站是否加载成功isapi_redirect-1.2.14.dll文件,在网站的属性里,切到筛选器页,
如图则加载成功。
如果不出现箭头或者出现红色的向下箭头就说明加载不失败,解决的方法就是给jakarta赋于权限,在相应的网站下选择jakarta/权限 如下图:
点击权限进入如下图:
至少要有如上图中的4个用户,如果不全就添加,用户可以多个,看情况而定的。
如果设置完后还是未能加载就再重起IIS,
以下为tomcat中的conf/service.xml 文件的部分配置:
注意:tomcat是用60000(非80端口),而IIS中的用80端口。
操作完以上操作后IIS与tomcat就算整合完成了。
在这个过程中可能会遇到一些问题:
1., 起动tomcat时出现:
出现这个问题是由于端口被占用的原因,就是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
为调试程序,本机安装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
在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方法…
有时候把在myeclpise项目部署到tomcat中的时候会莫名其妙的发现tomcat启动不了换成是myeclpise自带的tom…
一在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方…
前沿1如果之前安装了Oreacla在使用tomcat是会出现8080端口被占用的情况发生解决的方法就是对tomcat的端口进行配置…
tomcat因端口占用无法启动解决方法20xx0322223711分类技术分享标签tomcat端口占用解决方法8080jsp字号大…
Tomcat修改默认端口以及Tomcat设置虚拟目录个人操作所获经验例虚拟目录改为Djsproot1建立Djsproot将tomc…
Weblogic和Tomcat如何修改端口号20xx0413104410转载标签分类数据库it一Weblogic中端口号的修改1在…
在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方法…
我在tomcatwebapps下建了个myjsp目录作为我网站的默认目录在myjsp中有一个ajsp文件该文件要作为我网站的默认主…
tomcat因端口占用无法启动解决方法20xx0322223711分类技术分享标签tomcat端口占用解决方法8080jsp字号大…
前沿1如果之前安装了Oreacla在使用tomcat是会出现8080端口被占用的情况发生解决的方法就是对tomcat的端口进行配置…