最近在開發項目中,遇到的一個問題是:在 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:\tomcat\bin>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。)
