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