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.


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

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.


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.


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


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.


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


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


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

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

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.


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


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 :)


0

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

#AUTHBIND=no

untuk

AUTHBIND=yes

lalu mulai kembali.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.