您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Tomcat5.5如何監聽IPV6和IPV4”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Tomcat5.5如何監聽IPV6和IPV4”這篇文章吧。
Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由于有了Sun 的參與和支持,***的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5支持***的Servlet 2.4 和JSP 2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。
1現象描述
當時的場景是在同一臺機器上搭建了兩個應用:應用1和應用2,使用相同的Tomcat5.5,只不過是啟動的端口不同(8080和8088),發現兩個應用監聽的端口都在監聽狀態,但是通過telnet 127.0.0.1 port 都連接不上,很是奇怪。下圖中的“8080”端口是可以通過telnet連接的,但是“8088”端口通過telnet是連接不成功的,連接時會報“無法連接到目標端口的錯誤”。
通過netstat命令查看兩個端口的區別,發現8080端口是綁定到“0.0.0.0:8080”,而8088端口則沒有這樣的綁定,而是直接綁定到了IPV6的地址,這樣的話,無論你怎么訪問都是無濟于事,如下圖:
2解決辦法
找到tomcat5.5目錄下的conf\server.xml文件:
<Connector URIEncoding="utf-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
添加address="0.0.0.0",修改后內容如下:
<Connector URIEncoding="utf-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443" address="0.0.0.0"/>
后來深入了解了一下,才知道產生此問題的根本原因是Tomcat5.5在啟動的時候,如果檢測到系統支持IPV6,默認監聽的是IPV6的端口,導致通過IPV4無法訪問。修改配置文件添加address=“0.0.0.0”是為了確保tomcat5.5啟動時監聽的是IPV4協議棧下的任何端口。
IPV4協議監聽任何地址應配置:0.0.0.0
IPV6協議監聽任何地址贏配置:0:0:0:0:0:0:0:0
PS:Tomcat6及之后的版本不會出現問題,默認監聽的是IPV4的地址端口。
以上是“Tomcat5.5如何監聽IPV6和IPV4”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。