Tomcat limanını 8080'den 80'e nasıl değiştirebilirim?


Yanıtlar:


215

1) confTomcat kurulum dizinindeki klasöre gidin

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

2) Dosyada aşağıdaki etiketi server.xml düzenleyin

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

3) port=8080Değeriport=80

4) Dosyayı kaydedin.

5) Tomcat'inizi durdurun ve yeniden başlatın.


14
Ayrıca, Tomcat'i durdurup yeniden başlattığınızdan emin olun. Sadece söylüyorum. :)
AllieCat

3
Bunu yaptım ve 404 hatası alıyorum! Yapmam gereken başka bir şey var mı?
Satürn

15
İçinde etc/default/tomcat7 seti AUTHBIND=yes, bağlantı noktası 80 için bir PermissionDenied hatayı önlemek için
Markus Pscheidt

1
Linux ortamı için Rose'un cevabına bakın!
Marko

Bu cevap / etc / authbind bilgisine sahip değil, aşağıdaki Rose'un cevabına bakınız
jorfus

119

Ubuntu 14.04 LTS, Amazon EC2'de. Aşağıdaki adımlar benim için bu sorunu çözdü:

1. server.xml dosyasını düzenleyin ve port = "8080" i "80" olarak değiştirin

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

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

2. tomcat7 dosyasını düzenleyin (dosya oluşturulmadıysa oluşturmanız gerekir)

sudo vi /etc/default/tomcat7

uncomment ve change # AUTHBIND = hayır, evet

3. authbind yükleyin

sudo apt-get install authbind

4. 80 numaralı bağlantı noktasında tomcat7 okuma + yürütme sağlamak için aşağıdaki komutları çalıştırın.

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

5. Tomcat'i yeniden başlatın:

sudo /etc/init.d/tomcat7 restart

1
Bu işe yarıyor. Linux kullanıcıları, en azından benim için Ubuntu 14.04.2 LTS ile çalışıyor.
Rodrigo Gurgel

3
Autobind doğru cevaptır. Ancak, 80 numaralı bağlantı noktası yükseltilmiş kullanıcıya verileceğinden 'sudo startup.sh' komutunu kullandığınızda autobind'i atlayabileceğinizi unutmayın.
Marcio Jasinski

1
Teşekkürler!! Sunucu yapılandırmasında kimlik doğrulamasını etkinleştirmeyi biliyordum ama kayıtlı bağlantı noktası için kimlik doğrulamasında bir dosya oluşturmak zorunda olduğumu bilmiyordum! Keşke OP bu cevaba kabul edilen çözümü değiştirmiş olsaydı! (Cevaplamaya neredeyse 3 yıl geciktiğinizi görüyorum: P)
Fr0zenFyr

1
Tomunt 9 ile Lubuntu 18.0.4 üzerinde çalışır, kurulum yapmadan authbindsadece ayarı ekler.
Marco Sulla

107

Linux Debian tabanlı (bu yüzden Ubuntu dahil) /etc/default/tomcat7#AUTHBIND=no , sunucunun ayrıcalıklı bir bağlantı noktasına bağlanabilmesi , hattı ve değerini 'evet' olarak ayarlamanız gerekir.


2
Merhaba ben belirli bir dosya yok
nmkyuppie

Tomcat'in hangi sürümü? Hangi işletim sistemindesiniz?
Öncü Gökyüzü

7
Zip / tar.gz tarafından yüklendiyse Tomcat için çalışmaz, çünkü dosyayı / etc / defaults / içinde oluşturmazlar.
Gorkamorka

9
Yukarıdaki yol şöyle olmalıdır: / etc / default / tomcat7 (varsayılan olarak 's' eksikliğine dikkat edin)
Tristan Reid

1
Tomcat 9 için eşit olan nedir?
katu

29

Ubuntu ve Debian sistemlerinde, birkaç adım gereklidir:

  1. Server.xml olarak, hat değiştirmek <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>zorunda port="80".

  2. Önerilen (gerekli değil) authbind paketini aşağıdaki gibi bir komutla yükleyin:

    sudo apt-get install authbind

  3. Satırı açıp şu şekilde ayarlayarak server.xml dosyasında (ya /etc/tomcat6da içinde /etc/tomcat7) authbind özelliğini etkinleştirin :

    AUTHBIND=yes

Her üç adım da gereklidir.


5
13.10'da Tomcat (zip / tar.gz tarafından yüklendiyse) için çalışmaz.
Gorkamorka

4
Zip / tar.gz'den çalışmasını sağlamak için yukarıdaki 1. ve 2. adımları uygulayın, bin / setenv.sh dosyasına (orada değilse yaratın) AUTHBIND = yes komutunu ekleyin ve kökten başlayın. LTS 12.04 ile çalışır, 13.10 ile de çalışmalıdır.
karl

Benim durumumda outhbind paketi olmadan başarısız oldu (catalina.out içinde hata mesajı ile), yükledikten sonra çalıştı
golimar

AUTHBIND = yes hakkındaki belgelere işaret edebilir misiniz? Hiçbir yerde bulamıyorum.
ARX

TOMCAT belgelerinde sunucu öğesi yapılandırmasının bir parçası olarak AUTHBIND ayarından da söz edemiyorum. Garip.
Peter N. Steinmetz

22

Ben gelen port değiştirmeyi denedim 8080hiç 80de server.xmlama benim için işe yaramadı. Sonra alternatif buldum,iptables , performans üzerinde bir etkisi olduğundan eminim .

Aşağıdaki komutları kullanıyorum:

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


nasıl geri alınır?
SAI GIRI CHARY AOUSULA

Yönlendirmeyi kaldırmak için aşağıdaki komutu çalıştırın: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol

17

Önceki yanıtlar 14.04 Ubuntu Sunucusunda benim için iyi çalışmadığı için (iyi, ama yeterli değildi), bu önerilerden bahsediyorum (bu bir teklif) söz.

Düzenleme: @ gibi jason-faust, yorumlar kısmında belirttiğimiz notu , 14.04 tarihinde authbindIPv4 şey artık gerekli değildir tercih yüzden onunla gemiler artık destek IPv6 yaptığı paketi .

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

Zaten bir amacımız setenv.shdosyayı /usr/share/tomcat7/binbirlikte CATALINA_OPTS, kullanılan vardır:

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

Artık bağlantı noktasını 80diğer yanıtlarda belirtildiği gibi değiştirebilirsiniz .


2
Startup.sh dosyasının şu konumda olduğunu da ekleyeceğim: /usr/share/tomcat7/bin/startup.sh - Bize yeni
gelenler

@ Güncellenmiş yollar, diğer aramaları kaydetmek için harika bir fikir. Burası bilmenin başlangıçta açık olmadığını itiraf ediyorum.
smonff

1
Teşekkürler, bu harika çalıştı, centos'a alışkınım, bu yüzden bu benim için bir sorun değildi, bu bana yardımcı oldu.
med116

1
Bunu 14.04'te izledim, birlikte gelen authbind paketi şimdi IPv6'yı destekliyor, bu yüzden IPv4 tercihine artık gerek yok.
Jason Faust

Ben de yaptım: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils

5

Modern linux'da (benim için) en iyi yaklaşım xinetd kullanmaktır:

1) /etc/xinet.d/tomcat-http oluşturun

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

2) /etc/xinet.d/tomcat-https oluşturun

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

3) chkconfig xinetd açık

4) /etc/init.d/xinetd başlangıç


Diğer yaklaşım derlemek ve jsvc kullanmaktır ama xinetd kesinlikle daha kolay
cgdave

5

Birisi arıyorsa, aşağıdaki Eclipse IDE kullanıcısında tomcat port numarasını değiştirme adımlarıdır.

Sunucular görünümünde, sunucu adına çift tıklayın: resim açıklamasını buraya girin

Tomcat için bir yapılandırma sayfası aşağıdaki gibi açılacaktır: resim açıklamasını buraya girin

Bağlantı noktası numaralarının sağdaki tabloda gösterildiğine dikkat edin. Düzenlemek için tıklayın, örneğin: resim açıklamasını buraya girin

HTTP için bağlantı noktası numarasını 8080'den 80'e değiştirecektir. Değişikliği kaydetmek ve sunucuyu yeniden başlatmak için Ctrl + S tuşlarına basın. Bağlantı noktası numarası değişikliğini Konsol görünümünde görebiliriz: resim açıklamasını buraya girin

Bu içeriğin tamamı aşağıdaki linkten alınmıştır, daha fazla bilgi için lütfen bu linke bakınız. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse


4

Aşağıdaki komutu çalıştırmak ile çalıştı. Değişen denedim server.xmlve conf dosyası ama ikisi de işe yaramadı.

/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 sunucusunda Tomcat'i 80 numaralı bağlantı noktasını dinleyecek şekilde yeniden yapılandırmak için bu komutları kullanabilirsiniz:

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

Eğer eclipse kullanıyorsanız ve değiştirerek server.xml sizin için çalışmazsa aşağıdaki makaleyi deneyin .. eclipse gibi IDE kullanıyorsanız bağlantı noktasını değiştirmek için adımları var.


1

Tomcat'in Conf klasörüne git

server.xml dosyasını açın

Aşağıdaki gibi görünen bağlayıcı düğümlerden birine gidin

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

Bağlantı noktasını değiştirin

kaydet ve yeniden başlat tomcat


1
Sadece Windows'da değil mi?
smonff

1

İşte adımlar:

-> Yolu izleyin: {tomcat dizini> / conf -> Bu satırı bulun:

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

port numarasını "8080" yerine "80" olarak değiştirin.

-> Dosyayı kaydedin.

-> Sunucuyu yeniden başlatın :)


0

Dosyayı düzenlemeyi unutmayın. Dosyayı aç /etc/default/tomcat7ve değiştir

#AUTHBIND=no

için

AUTHBIND=yes

sonra yeniden başlatın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.