Bagaimana cara mengubah port Tomcat dari 8080 menjadi 80?

Jawaban:

215

1) Buka conffolder dalam direktori instalasi kucing jantan

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

2) Edit tag berikut dalam server.xml file

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

3) Ubah port=8080nilainya menjadiport=80

4) Simpan file.

5) Hentikan Tomcat Anda dan mulai kembali.

Romani
sumber
14
Juga, pastikan untuk berhenti dan memulai kembali Tomcat. Hanya mengatakan. :)
AllieCat
3
Saya melakukan ini dan saya mendapatkan kesalahan 404! Apakah ada hal lain yang harus saya lakukan?
Saturnus
15
Dalam etc/default/tomcat7set AUTHBIND=yes, untuk menghindari kesalahan PermissionDenied untuk port 80.
Markus Pscheidt
1
Lihat jawaban Rose untuk lingkungan Linux!
Marko
Jawaban ini tidak memiliki informasi / etc / authbind, lihat jawaban dari Rose di bawah
jorfus
119

Ubuntu 14,04 LTS, di Amazon EC2. Langkah-langkah berikut ini menyelesaikan masalah bagi saya:

1. Edit server.xml dan ubah port = "8080" menjadi "80"

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

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

2. Edit file tomcat7 (jika file tersebut tidak dibuat maka Anda harus membuatnya)

sudo vi /etc/default/tomcat7

batalkan komentar dan ubah # AUTHBIND = tidak menjadi ya

3. Pasang authbind

sudo apt-get install authbind

4. Jalankan perintah berikut untuk memberikan tomcat7 baca + eksekusi pada port 80.

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

5. Mulai kembali kucing jantan:

sudo /etc/init.d/tomcat7 restart
Mawar
sumber
1
Yang itu berhasil. Orang Linux, setidaknya bekerja untuk saya dengan Ubuntu 14.04.2 LTS.
Rodrigo Gurgel
3
Autobind adalah jawaban yang benar. Tetapi perhatikan bahwa Anda dapat melewati autobind jika Anda menggunakan 'sudo startup.sh' karena port 80 akan diberikan kepada pengguna yang ditingkatkan.
Marcio Jasinski
1
Terima kasih!! Saya tahu tentang mengaktifkan authbind di server config tetapi tidak tahu saya harus membuat file di authbind untuk port terdaftar! Saya berharap OP telah mengubah solusi yang diterima untuk jawaban ini! (Saya melihat bahwa Anda hampir 3 tahun terlambat dalam menjawab: P)
Fr0zenFyr
1
Ini bekerja dengan Tomcat 9 di Lubuntu 18.0.4, tanpa menginstal authbind, hanya menambahkan pengaturan.
Marco Sulla
107

Pada Linux berbasis Debian (termasuk Ubuntu) Anda juga harus pergi /etc/default/tomcat7, batalkan komentar pada #AUTHBIND=nobaris dan atur nilainya menjadi 'ya', agar server mengikat pada port istimewa.

Langit Pionir
sumber
2
Hai, saya tidak punya file itu
nmkyuppie
Apa versi kucing jantan? OS apa yang Anda pakai?
Pioneer Skies
7
Tidak berfungsi untuk Tomcat jika diinstal oleh zip / tar.gz, karena mereka tidak membuat file di / etc / defaults /.
Gorkamorka
9
Jalan di atas seharusnya: / etc / default / tomcat7 (perhatikan kekurangan 's' di default)
Tristan Reid
1
Apa yang setara dengan Tomcat 9?
katu
29

Pada sistem Ubuntu dan Debian, ada beberapa langkah yang diperlukan:

  1. Di server.xml, ubah baris yang <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>ada port="80".

  2. Instal paket authbind yang direkomendasikan (tidak wajib), dengan perintah seperti:

    sudo apt-get install authbind

  3. Aktifkan authbind di file server.xml (dalam salah satu /etc/tomcat6atau /etc/tomcat7) dengan membatalkan komentar dan mengatur baris seperti:

    AUTHBIND=yes

Ketiga langkah dibutuhkan.

Peter N. Steinmetz
sumber
5
Tidak berfungsi untuk Tomcat (jika dipasang dengan zip / tar.gz) di 13.10.
Gorkamorka
4
Untuk membuatnya berfungsi dari zip / tar.gz, lakukan langkah 1 dan 2 di atas, tambahkan AUTHBIND = yes ke bin / setenv.sh (buat jika tidak ada) dan mulai dari root. Bekerja dengan LTS 12.04, juga harus bekerja dengan w / 13.10.
karl
Dalam kasus saya gagal (tanpa pesan kesalahan di catalina.out) tanpa paket authbind, berfungsi setelah menginstalnya
golimar
Bisakah Anda arahkan ke dokumentasi tentang AUTHBIND = ya? Saya tidak menemukannya di mana pun.
ARX
Saya tidak dapat menemukan penyebutan pengaturan AUTHBIND sebagai bagian dari konfigurasi elemen server dalam dokumentasi TOMCAT. Aneh.
Peter N. Steinmetz
22

Saya mencoba mengubah port dari 8080ke 80dalam server.xmltetapi tidak berhasil untuk saya. Lalu saya menemukan alternatif, perbarui iptablesyang saya yakin ada dampak pada kinerja.

Saya menggunakan perintah berikut:

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

Athar
sumber
bagaimana cara mengembalikan ini?
SAI GIRI CHARY AOUSULA
Jalankan perintah berikut untuk menghapus perutean: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol
17

Karena jawaban sebelumnya tidak bekerja dengan baik (itu baik, tetapi tidak cukup) untuk saya di Ubuntu Server 14,04, saya menyebutkan rekomendasi ini (ini adalah kutipan).

Sunting: perhatikan bahwa ketika @ jason-faust menyebutkannya di komentar, pada 14,04, authbindpaket yang dikirimkan dengannya mendukung IPv6 sekarang, jadi hal yang disukai IPv4 tidak diperlukan lagi .

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 "$@"

Jika Anda sudah punya setenv.shfile dalam /usr/share/tomcat7/bindengan CATALINA_OPTS, Anda harus menggunakan:

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

Sekarang Anda dapat mengubah port 80seperti yang diceritakan dalam jawaban lain.

Smonff
sumber
2
Saya ingin menambahkan bahwa file startup.sh terletak di: /usr/share/tomcat7/bin/startup.sh - Tidak sepenuhnya jelas bagi kita para pemula;)
ConMan
@ConMan memperbarui jalur, itu ide bagus untuk menyimpan pencarian lainnya. Saya akui bahwa mengetahui tempat ini tidak jelas pada awalnya.
smonff
1
Terima kasih, ini bekerja dengan baik, saya sudah terbiasa dengan centos, jadi ini membantu saya, di mana ini bukan masalah bagi saya.
med116
1
Saya hanya mengikuti ini hari ini pada 14,04, paket authbind yang disertakan dengannya mendukung IPv6 sekarang, jadi pilihan IPv4 tidak lagi diperlukan.
Jason Faust
Saya juga melakukannya: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils
5

Di linux modern, pendekatan terbaik (untuk saya) adalah menggunakan xinetd:

1) buat /etc/xinet.d/tomcat-http

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

2) buat /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 aktif

4) /etc/init.d/xinetd mulai

cgdave
sumber
Pendekatan lain adalah mengkompilasi dan menggunakan jsvc tetapi xinetd jelas lebih mudah
cgdave
5

Jika seseorang mencari, cara mengubah nomor port kucing jantan di pengguna Eclipse IDE berikut adalah langkah-langkahnya.

1. Pada tampilan Server, klik dua kali pada nama server: masukkan deskripsi gambar di sini

2.Itu akan membuka halaman konfigurasi untuk Tomcat sebagai berikut: masukkan deskripsi gambar di sini

3. Perhatikan nomor port ditunjukkan pada tabel di sebelah kanan. Klik untuk mengedit, misalnya: masukkan deskripsi gambar di sini

4.Itu akan mengubah nomor port untuk HTTP dari 8080 menjadi 80. Tekan Ctrl + S untuk menyimpan perubahan dan restart server. Kami dapat melihat perubahan nomor port dalam tampilan Konsol: masukkan deskripsi gambar di sini

Semua konten ini diambil dari tautan di bawah ini, silakan lihat tautan itu untuk informasi lebih lanjut, terima kasih. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
sumber
4

Menjalankan perintah di bawah ini berhasil. Mencoba mengubah server.xmldan file conf tetapi keduanya tidak berhasil.

/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
Naeem Iqbal
sumber
3

Pada server linux Anda bisa menggunakan perintah ini untuk mengkonfigurasi ulang Tomcat untuk mendengarkan pada port 80:

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
panticz
sumber
2

jika Anda menggunakan eclipse dan memodifikasi server.xml tidak berfungsi untuk Anda, maka cobalah artikel berikut .. mereka memiliki langkah-langkah untuk memodifikasi port jika Anda menggunakan IDE seperti eclipse.

pengguna3461044
sumber
1

Cukup buka folder conf tomcat

buka file server.xml

Pergi salah satu simpul konektor yang terlihat seperti berikut

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

Cukup ganti port

simpan dan mulai kembali kucing jantan

ravi ranjan
sumber
1
Hanya di Windows bukan?
smonff
1

Berikut langkah-langkahnya:

-> Ikuti jalur: {tomcat directory> / conf -> Temukan baris ini:

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

ubah portnumber dari "8080" menjadi "80".

-> Simpan file.

-> Mulai ulang server :)

Madhusudan
sumber
0

Jangan lupa mengedit file. Buka file /etc/default/tomcat7dan ubah

#AUTHBIND=no

untuk

AUTHBIND=yes

lalu mulai kembali.

Patrikoko
sumber