您的位置:首页 > 运维架构 > Tomcat

Tomcat5.5获取监听IPV6和IPV4的修改方法

2014-02-20 10:28 1376 查看
Tomcat5.5获取监听IPV6和IPV4的修改方法
今天遇到一个很奇怪的问题,在同一台机器上的应用1和应用2,使用相同的Tomcat,只不过是启动的端口不同,发现两个应用都会出现很奇怪的问题:两个应用监听的端口都在监听状态,但是通过telnet 127.0.0.1 port 都连接不上,很是奇怪。出现问题的机器操作系统为windows server2008。下图中的“8080”端口是可以通过telnet连接的,但是“8088”端口通过telnet是连接不成功的,连接时会报“无法连接到目标端口的错误”。通过netstat命令查看两个端口的区别,区别是:8080端口是绑定到“0.0.0.0:8080”,而8088端口则没有这样的绑定。如下图:



[align=left] [/align]

任何诡异的现象后面都隐藏着一个不为人知的问题,抱着不达目的誓不罢休的精神最终在网上找到了解决方案,经过测试,下面的方案是可行的。解决方案如下:
找到tomcat5.5目录下的conf\server.xml文件,在下面的代码中添加红色字体内容:
<Connector port="8080" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

添加address="0.0.0.0",修改后内容如下:

<Connector port="8080" maxHttpHeaderSize="8192"address="0.0.0.0"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true"/>

产生此问题的根本原因是Tomcat5.5在启动的时候,如果检测到系统支持IPV6,默认监听的是IPV6的端口,导致通过IPV4无法访问。使用address=“0.0.0.0”的意思是监听IPV4协议栈下的任何端口。
IPV4协议监听任何地址应配置:0.0.0.0
IPV6协议监听任何地址赢配置:0:0:0:0:0:0:0:0
据说Tomcat6及之后的版本不会出现问题,默认监听的是IPV4的地址端口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: