实现tomcat与IIS公用80端口

Posted easy5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现tomcat与IIS公用80端口相关的知识,希望对你有一定的参考价值。

一、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

 

以上是关于实现tomcat与IIS公用80端口的主要内容,如果未能解决你的问题,请参考以下文章

设置泛域名和设置IIS下面不同网站通过不同域名公用80端口的操作指引

在Windows server 2008R2系统下,IIS7上的网站怎么和Apache公用一个80端口呢?

求助nginx绑定多个网站公用80端口的问题

IIS和APACHE如何共用80端口?

Nginx + Apache 公用 80 端口的配置方案。

利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口