簡體   English   中英

為什么 Tomcat 可以使用端口 8080 而不是 80?

[英]Why does Tomcat work with port 8080 but not 80?

我已經在端口 8080(默認)下啟動並測試了 Tomcat。 現在我將連接器端口更改為 80 並重新啟動 Tomcat,在我的最小 Debian 6.0 安裝中不會顯示任何內容。 現在訣竅在哪里?

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           URIEncoding="UTF-8"
           redirectPort="8443" />

轉到 /etc/default/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

兩個典型原因:

  • 您很可能沒有權限偵聽低於 1024 的端口(通常需要管理權限,例如root
  • 其他東西可能已經在偵聽端口 80(例如 apache)

如果之前的評論都不起作用(就像我遇到的那樣),您可以將流量從端口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 

您是否以 root 身份在端口 80 上啟動了 Tomcat? 您必須是 root 才能綁定到 Linux 中 <= 1024 的端口。

更改綁定后,以 root 身份運行啟動腳本。

sudo ./<path to tomcat bin director>/startup.sh

停止apache服務然后運行tomcat你應該沒問題,默認情況下apache在端口80上運行

您可以使用 authbind/privbind 或功能綁定到端口 80。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM