web-dev-qa-db-ja.com

Tomcatが8080ではなくポート8080で動作するのはなぜですか?

私はポート8080(デフォルト)でTomcatを起動してテストしました。コネクタポートを80に変更してTomcatを再起動しましたが、最小のDebian 6.0インストールでは何も表示されません。ここでの秘訣はどこですか?

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

/ etc/default/Tomcat6に移動し、#AUTHBIND=noAUTHBIND=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
31
Dominik

2つの典型的な理由:

  • 1024未満のポートをリッスンする権限がない可能性があります(通常、管理者権限が必要です(例:root)。
  • 他の何かがすでにポート80でリッスンしている可能性があります(例:Apache)
11
Jon Skeet

ルートとしてポート80でTomcatを起動しましたか? Linuxで1024以下のポートにバインドするには、rootである必要があります。

9
rooftop

動作する前にコメントされたものが何もない場合(それが私に起こったように)、ポートからトラフィックを転送できます80から8080

それをするために:

http://forum.slicehost.com/index.php?p=/discussion/2497/iptables-redirect-port-80-to-port-8080/p1

簡単に言うと、ターミナルで次の3つのコマンドを入力します。

$ 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 
9
Jesus

バインディングを変更した後、起動スクリプトをrootとして実行します。

Sudo ./<path to Tomcat bin director>/startup.sh
2

Authbind/privbindまたは機能を使用して、ポート80にバインドできます。

0
user1462586

apacheサービスを停止してから、Tomcatを実行してください。デフォルトでは、Apacheはポート80で実行されています。

0
Satya