web-dev-qa-db-ja.com

Tomcat6がポート80にバインドしないのはなぜですか?

私はポート80でTomcatを実行することの意味を知っていますが、簡単な解決策を求めています。これをフォローしようとしています チュートリアル 。チュートリアルに従って、2つの変更を加えました。

  • Tomcat6は、Tomcatが実行されるユーザー名です
  • Tomcat confファイルの場所:/usr/share/Tomcat6/bin/catalina.sh

しかし、まだ許可エラーが発生しています。 Javaは、ポート80にバインドできないと言っています。他に何をすべきでしょうか?デバッグするために他にどのような情報を提供する必要がありますか?確認のために、ポート80で実行しているものは他にありません

4
richzilla

次のように、/etc/default/Tomcat6のAUTOBINDプロパティを「yes」に変更できます。

AUTHBIND=yes

Tomcatを再起動すると、利用可能な特権ポート(1〜1023)を使用できるようになります。

6
Avikar

Tomcatの設定に実際に触れることなくこれを行うには、2つの異なる方法があります。

ポート80からポート8080にトラフィックをリダイレクトするiptablesスクリプトを作成できます(Tomcat設定をいじる必要はありません)

iptables用

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80がトリックを行います! (uppstartで自動的に行われるようにスクリプトを作成します

または、実際にTomcatサーバーへの接続をプロキシするApacheリバースプロキシを作成できます(実際にリクエストをキャッシュして接続を高速化できるため、これは良いことです)

2
tomodachi

Authbindを使用してTomcatサービスを開始すると、ユーザーがリダイレクトまたはiptablesする必要のない1024未満のポートを開始できます。

apt-get install authbind -y

Authbindソフトウェアをインストールするには

chmod -R 755/etc/authbind

グループはユーザーグループでなければなりません。

chown -Rh root:group/etc/authbind

その後、以下のコマンドを実行します

cd/etc/authbind/byuid

たとえば、ユーザーIDが2000の場合、ユーザーID番号を使用できます

エコー '0.0.0.0/0:1,1023'> 2000

そのファイルは、ユーザーとグループが所有する必要があります。

チャウン:2000

chmod 700 2000

Tomcatスタートアップファイル$ CATALINA_BASE/startup.shに以下の行を追加します

export Java_OPTS="$Java_OPTS -Djava.net.preferIPv4Stack=true"

Authbindサービスstartup.shを使用してTomcatを起動する場合

以下の行にコメントしてください

#$CATALINA_HOME/bin/startup.sh

ファイルの末尾としてThis Endを追加します

AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c " 

$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh   

これで、1024未満のポートを持つユーザーとしてTomcatサービスを開始できるはずです。

0
PKumar

Tomcat HTTPコネクターでは、ポート80のコネクターが、127.1ではなく、すべてのインターフェース、または0.0.0.0にバインドされていることを確認してください。 http://10.0.0.2:8 などのURLで接続できないが、 http://127.1:8 で接続できる理由を説明するかもしれません

0
djangofan