LInux設置tomcat端口為80


<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

  上面的是tomcat的默認端口號,我們只需要吧8080改成80即可。但是和修改之后是無論如何都無法訪問的。

  網上有很多說法,我嘗試了都不能解決當前問題,最后終於找到了問題的原因。

  在Linux系統。普通程序無法監聽1024以下的端口,1024以下的端口只有root應用程序能使用,所以即使把tomcat的端口號改成80也無法監聽到從80端口進來的服務請求。

  解決方案是使用端口轉發,將80端口進來的服務請求轉發到tomcat的端口上去,這里以8080為例子。

  設置端口轉發命令:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

  我使用的mint版本的Linux系統,沒有/etc/sysconfig/iptables,所以必須手動保存,不然重啟一次機器配置就失效了,然后還得讓系統每次啟動重新加載配置文件。

  做法如下:在編輯/etc/network/interfaces,在末尾添加以下兩行。

  第一行是每次啟動重新加載/etc/iptables.up.rules文件到iptables,iptables-restore命令是重新加載iptables配置

  第二行是每次關機將iptables的配置保存到/etc/iptables.up.rules文件中

pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-save > /etc/iptables.up.rules

  以上,就完成了配置,即可實現tomcat綁定80端口。

   但我依然有我不能理解的地方,按照我的理解,即把tomcat的端口改成8080或者其他任意的可用端口都可以實現端口轉發,但是這里必須把80端口添加到tomcat的server.xml文件中才能實現正常訪問。即在server.xml文件里面必須有以下配置

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

  沒有配置8080端口也可以訪問到,這種表現不就是在說,只需要把server.xml的文件的端口號改成80就可以了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM