最近在开发项目中,遇到的一个问题是:在 tomcat中发布一个web项目,但是发布成功后,只能用http://localhost:8080/aml访问项目,不能用http://172.0.0.1:8080/aml访问项目,也不能用本地的IP地址访问,同时其他同事的电脑也不能访问。
起初以为是防火墙的问题,但是关闭防火墙后,依旧是不能访问。同时,关闭不允许远程访问也不可以。后来在查看资料的时候知道,tomcat绑定IP地址的问题,而win7默认使用的是ipv6协议,通过ping localhost查看IP是哪种格式,得知::1 IPv6。
先解决方案:
1:启动tomcat,使用cmd命令:D: omcatin>netstat -an | findstr "8080",查看tomcat地址绑定。
2:配置tomcat的server.xml, 更改connector配置, 端口不用改, 加上address="0.0.0.0", 使其绑定到IPv4。配置如下:
1 <Connector port="8080" address="0.0.0.0" protocol="HTTP/1.1" 2 connectionTimeout="20000" 3 redirectPort="8443" />
3:重启tomcat,再次查看tomcat地址绑定。发现绑定地址已变为0.0.0.0:8080,ipv4协议。
另外,address属性的修改还可以让tomcat绑定指定的IP,如:address="127.0.0.1",这样tomcat就只监听IP地址127.0.0.1的8080端口了。(默认情况下,它会监听所有的IP。)