实现tomcat与IIS共用80端口

时间:2024-07-14 14:36:50

一、80端口被system占用的问题

目前生产环境的需要两种方式网站发布:

[1].使用IIS发布.net开发的网站;

[2].使用tomcat发布java开发的网站;

启动tomcat的时候发现无法启动80端口被占用,请试图排查下如下原因:

在安装了Ms SQL server如果安装了报表服务ReportServer,此服务默认占用了80端口,如果是,请关闭此服务,并将其启动类型变成禁用或手动

二、实现tomcat与IIS公用80端口

实现tomcat与IIS公用80端口,目前解决方案是:双IP解决方案;

基本思路是:首先禁用iis的套接字池,iis绑定一个ip,然后tomcat在绑定另一个ip,最后重启下服务器即可。

方法和步骤如下:

第一步:禁用IIS套接字池并设置其监听IP

套接字池会导致“Internet 信息服务”(IIS) 侦听所有 IP 地址,

要禁用套接字池,请执行下列步骤:

打开命令提示符并确保您位于X:\Inetpub\Adminscripts 文件夹(其中X是II 安装驱动器)中。为此,

1.请在命令提示符下键入以下行:

X:CD\Inetpub\Adminscripts

2.打开Adminscripts文件夹后,请在命令提示符下键入以下行:

cscript adsutil.vbs set w3svc/disablesocketpooling true

3.该命令反馈如下:

disablesocketpooling :(BOOLEAN) True

4停止 IIS Admin 服务,然后再启动它。

5重新启动 WWW 服务。

6 接下来设置IIS要监听的ip地址。使用工具httpcfg.exe,拷贝到 windows/system32/目录下,用法自己看帮助 命令行: 绑定到某IP:

httpcfg set iplisten -i 192.168.0.102

即命令使用IIS的只监听指定的IP及端口

查看绑定: httpcfg query iplisten

删除绑定: httpcfg delete iplisten -i 192.168.0.102

第二步:tomcat的设置

IIS部分到此就设置好了,接下来设置Tomcat,当然或者你用Apache,Resin等也都可以,在Tomcat的配置文件Server.xml里 找到

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"   redirectPort="8443"/> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"   redirectPort="8443" address="192.168.0.101"/>

在后面添加上需要Tomcat监听的ip地址即可,

例如:address="192.168.0.101"   Apache,Resin或者其他WEB服务器软件都应该有相应的设置的,自己找一下即可。

好了接下来重启下服务器,然后启动iis和tomcat服务,分别浏览器访问下iis和tomcat服务看看是否正常

参考资料:

https://support.microsoft.com/zh-cn/kb/238131