この設定[conf/server.xml]を使用して、Ubuntu 14.04でTomcatのポートを80に変更しようとしています。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
に:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
そして、私はこのエラーを受け取っています:
13-Oct-2015 18:09:10.626 SEVERE [main] org.Apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-80"]
Java.net.SocketException: Permission denied
私が間違っているのは何ですか?または何が欠けていますか?
ありがとう...
Ubuntu/Unixの1024未満のポートでTomcatを実行するには、サービスにルート権限が必要です。そして、あなたが望んでいないこと。
iptables
経由でポートリダイレクトを使用する
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Authbindを使用してTomcatサービスを開始すると、ユーザーがリダイレクトまたはiptablesする必要のない1024未満のポートを開始できます。
Sudo apt-get install authbind -y
Authbindソフトウェアをインストールするには
Sudo chmod -R 755/etc/authbind
グループはユーザーグループでなければなりません。
Sudo chown -Rh root:group/etc/authbind
その後、以下のコマンドを実行します
cd/etc/authbind/byuid
例としてimagneユーザー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サービスを開始できるはずです。