我已經啓動並測試了端口8080下的Tomcat(默認)。現在我將連接器端口改爲80,然後重新啓動Tomcat,在我最小的Debian 6.0安裝中沒有任何顯示。現在這裏的訣竅在哪裏?爲什麼Tomcat使用端口8080而不是80?
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
我已經啓動並測試了端口8080下的Tomcat(默認)。現在我將連接器端口改爲80,然後重新啓動Tomcat,在我最小的Debian 6.0安裝中沒有任何顯示。現在這裏的訣竅在哪裏?爲什麼Tomcat使用端口8080而不是80?
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
去到/ etc /默認/ tomcat6中,改變#AUTHBIND=no
到AUTHBIND=yes
# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind. It is used for binding Tomcat to lower port numbers.
# NOTE: authbind works only with IPv4. Do not enable it when using IPv6.
# (yes/no, default: no)
#AUTHBIND=no
也可以參考http://thelowedown.wordpress.com/2010/08/17/tomcat-6-binding-to-a-privileged-port-on-debianubuntu/ –
您是否以root用戶身份啓動了端口80上的Tomcat?您必須是root才能綁定到Linux中的端口< = 1024。
兩個典型的原因:
root
)@Romain:好的,根或類似的特權帳戶。已編輯澄清。我*相信* 1024會沒事的(即它只有0-1023這需要特權,但我可能是錯的) –
沒有其他人正在偵聽端口80.我是root,但我正在執行它/etc/init.d/ tomcat6 start –
如果沒有註釋的作品之前(如發生在我身上),可以從該端口80
到8080
指揮交通。
要做到這一點:
http://forum.slicehost.com/index.php?p=/discussion/2497/iptables-redirect-port-80-to-port-8080/p1
簡而言之,在終端中輸入這三個命令:
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
改變結合後運行你的啓動腳本爲根。
sudo ./<path to tomcat bin director>/startup.sh
完美的解決方案,挽救了我的一天 –
* nix的正確答案,但Windows如何? –
您可以使用authbind/privbind或功能綁定到端口80
你得到的BindException,也許,在catalina.out的?有一個公平的機會,其他服務器已經綁定到端口80. –
也許另一個服務正在該端口上運行 –
首先要做的事情:查看日誌(在tomcat/logs目錄中) –