私はポート80でTomcatを実行することの意味を知っていますが、簡単な解決策を求めています。これをフォローしようとしています チュートリアル 。チュートリアルに従って、2つの変更を加えました。
/usr/share/Tomcat6/bin/catalina.sh
しかし、まだ許可エラーが発生しています。 Javaは、ポート80にバインドできないと言っています。他に何をすべきでしょうか?デバッグするために他にどのような情報を提供する必要がありますか?確認のために、ポート80で実行しているものは他にありません
次のように、/etc/default/Tomcat6
のAUTOBINDプロパティを「yes」に変更できます。
AUTHBIND=yes
Tomcatを再起動すると、利用可能な特権ポート(1〜1023)を使用できるようになります。
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リバースプロキシを作成できます(実際にリクエストをキャッシュして接続を高速化できるため、これは良いことです)
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サービスを開始できるはずです。
Tomcat HTTPコネクターでは、ポート80のコネクターが、127.1ではなく、すべてのインターフェース、または0.0.0.0にバインドされていることを確認してください。 http://10.0.0.2:8 などのURLで接続できないが、 http://127.1:8 で接続できる理由を説明するかもしれません