Tomcatのポートを8080から80に変更するにはどうすればよいですか?


回答:


215

1)conftomcatインストールディレクトリのフォルダに移動します

 e.g. C:\Tomcat 6.0\conf\

2)ファイル内の次のタグを編集しserver.xml ます

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3)port=8080値をport=80

4)ファイルを保存します。

5)Tomcatを停止して再起動します。


14
また、Tomcatを停止して再起動してください。ただ言って。:)
AllieCat 2013年

3
これを実行すると、404エラーが発生します。他に何かすべきことはありますか?
Saturnian、

15
etc/default/tomcat7セットAUTHBIND=yes、ポート80のためPermissionDeniedエラーを避けるために
マルクスPscheidt

1
Linux環境に対するRoseの回答をご覧ください。
マルコ

この回答には/ etc / authbind情報がありません。下記のRoseからの回答を参照してください
jorfus

119

Ubuntu 14.04 LTS、Amazon EC2。 次の手順でこの問題を解決しました。

1. server.xmlを編集し、port = "8080"を "80"に変更します

sudo vi /var/lib/tomcat7/conf/server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2. tomcat7ファイルを編集します(ファイルが作成されていない場合は、作成する必要があります)

sudo vi /etc/default/tomcat7

コメントを外して#AUTHBIND = noをyesに変更します

3. authbindをインストールします

sudo apt-get install authbind

4.次のコマンドを実行して、ポート80でtomcat7 read + executeを提供します。

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

5. Tomcatを再起動します。

sudo /etc/init.d/tomcat7 restart

1
それはうまくいきます。Linuxの人々は、少なくとも私にとってUbuntu 14.04.2 LTSで動作します。
Rodrigo Gurgel 2016

3
自動バインドが正解です。ただし、「sudo startup.sh」を使用している場合は、ポート80がエスカレートされたユーザーに許可されるため、自動バインドをスキップできることに注意してください。
Marcio Jasinski 2016年

1
ありがとう!! サーバー構成でauthbindを有効にすることは知っていましたが、登録済みポートのauthbindにファイルを作成する必要があることを知りませんでした。OPがこの回答に対する承認済みのソリューションを変更したことを願っています。(私はあなたが答えるのにほぼ3年遅れていたと思います:P)
Fr0zenFyr 2017年

1
Lubuntu 18.0.4のTomcat 9で動作しauthbindます。インストールせずに、設定を追加するだけです。
Marco Sulla

107

LinuxのDebianベース(Ubuntuを含む)では、サーバーを特権ポートにバインドさせるために、に移動し/etc/default/tomcat7#AUTHBIND=no行のコメントを外して、その値を「yes」に設定する必要があります。


2
こんにちは、私はその特定のファイルを持っていません
nmkyuppie 2013

Tomcatのバージョンは何ですか?どのOSを使用していますか?
Pioneer Skies 2013

7
/ etc / defaults /にファイルを作成しないため、zip / tar.gzによってインストールされた場合、Tomcatでは機能しません。
Gorkamorka 2014年

9
上記のパスは次のようになります。/ etc / default / tomcat7(デフォルトでは 's'がないことに注意してください)
Tristan Reid

1
Tomcat 9と同じものは何ですか?
katu 2017

29

UbuntuおよびDebianシステムでは、いくつかの手順が必要です。

  1. server.xmlで、行<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>をに変更しますport="80"

  2. 次のようなコマンドを使用して、推奨される(必須ではない)authbindパッケージをインストールします。

    sudo apt-get install authbind

  3. 次のような行のコメントを外して設定することにより、server.xmlファイル(/etc/tomcat6またはのいずれか/etc/tomcat7)でauthbindを有効にします。

    AUTHBIND=yes

3つのステップすべてが必要です。


5
13.10では、Tomcat(zip / tar.gzによってインストールされている場合)では機能しません。
Gorkamorka 2014年

4
zip / tar.gzから機能させるには、上記のステップ1と2を実行し、AUTHBIND = yesをbin / setenv.shに追加し(そこにない場合は作成)、ルートから開始します。LTS 12.04で動作し、13.10でも動作するはずです。
karl 14年

私の場合、authbindパッケージなしで(catalina.outにエラーメッセージなしで)失敗し、インストール後に機能しました
golimar

AUTHBIND = yesに関するドキュメントを示してもらえますか?どこにもありません。
ARX

TOMCATのドキュメントで、サーバー要素の構成の一部としてのAUTHBIND設定についての言及も見つかりません。奇妙な。
Peter N. Steinmetz 2017

22

ポートをから8080に変更してみ80ましたserver.xmlが、うまくいきませんでした。次に、代替案を見つけ、iptablesパフォーマンスに影響があると確信しているものを更新します。

次のコマンドを使用します。

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80


これを元に戻すには?
SAI GIRI CHARY AOUSULA 2018年

次のコマンドを実行してルーティングを削除します。iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol

17

14.04 Ubuntuサーバーでは、以前の回答がうまく機能しなかった(それは良かったが十分ではなかった)ので、これらの推奨事項について言及します(これは引用です)。

編集:@ jason-faustがコメントで言及したように、14.04に同authbind梱されているパッケージは現在IPv6をサポートしているため、IPv4を優先する必要はもうありません

1) Install authbind
2) Make port 80 available to authbind (you need to be root):

  touch /etc/authbind/byport/80
  chmod 500 /etc/authbind/byport/80
  chown tomcat7 /etc/authbind/byport/80

3) Make IPv4 the default (authbind does not currently support IPv6).
   To do so, create the file TOMCAT/bin/setenv.sh with the following content: 

   CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

4) Change /usr/share/tomcat7/bin/startup.sh

  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
  # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"

ですでにsetenv.shファイルを取得している場合/usr/share/tomcat7/binCATALINA_OPTS、次を使用する必要があります。

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

これで、ポートを80他の回答にあるとおりに変更できます。


2
startup.shファイルが次の場所にあることを追加します:/usr/share/tomcat7/bin/startup.sh-初心者にはわかりません;)
ConMan

@ConManはパスを更新しました。これは、他の検索を保存するための素晴らしいアイデアです。この場所を知っていることは最初は明らかではないことを認めます。
smonff 2014

1
おかげで、これは素晴らしい働きをしました。私はcentosに慣れているので、これは私にとっては役に立ちましたが、これは私にとって問題ではありませんでした。
med116 2015

1
私はこれを本日14.04にフォローしました。同梱されているauthbindパッケージはIPv6をサポートしているので、IPv4を優先する必要はもうありません。
Jason Faust

私もやりました:chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils

5

最新のLinuxでは、(私にとって)最善のアプローチはxinetdを使用することです。

1)/etc/xinet.d/tomcat-httpを作成します

service http
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8080
}

2)/etc/xinet.d/tomcat-httpsを作成します

service https
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8443
}

3)chkconfig xinetdがオン

4)/etc/init.d/xinetd start


他のアプローチはjsvcをコンパイルして使用することですが、xinetdは間違いなく簡単です
cgdave

5

誰かが探している場合、Eclipse IDEユーザーでTomcatポート番号を変更する方法は次のとおりです。

1.「サーバー」ビューで、サーバー名をダブルクリックします。 ここに画像の説明を入力してください

2.次のようにTomcatの構成ページが開きます。 ここに画像の説明を入力してください

3.ポート番号が右の表に示されていることに注意してください。クリックして編集します。例: ここに画像の説明を入力してください

4.これにより、HTTPのポート番号が8080から80に変更されます。Ctrl+ Sを押して変更を保存し、サーバーを再起動します。コンソールビューでポート番号の変更を確認できます。 ここに画像の説明を入力してください

このすべてのコンテンツは以下のリンクから取得されました。詳細については、そのリンクを参照してください。 http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse


4

以下のコマンドを実行すると動作しました。変更server.xmlとconfファイルを試しましたが、どちらも機能しませんでした。

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

3

Linuxサーバーでは、次のコマンドを使用して、ポート80でリッスンするようにTomcatを再構成できます。

sed -i 's|port="8080"|port="80"|g' /etc/tomcat?/server.xml
sed -i 's|#AUTHBIND=no|AUTHBIND=yes|g' /etc/default/tomcat?
service tomcat8 restart

2

Eclipseを使用しており、server.xmlの変更が機能しない場合は、次の記事を試してください。EclipseのようなIDEを使用している場合は、ポートを変更する手順があります。


1

tomcatのconfフォルダに移動するだけです

server.xmlファイルを開く

次のようなコネクタノードの1つに移動します。

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

単にポートを変更する

Tomcatを保存して再起動する


1
Windowsだけではないですか?
smonff 2014

1

手順は次のとおりです。

->パスをたどります:{tomcatディレクトリ> / conf->この行を見つけます:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

ポート番号を「8080」から「80」に変更します。

->ファイルを保存します。

->サーバーを再起動します:)


0

ファイルを編集することを忘れないでください。ファイル/etc/default/tomcat7を開いて変更

#AUTHBIND=no

AUTHBIND=yes

その後、再起動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.