Jak zmienić port Tomcata z 8080 na 80?

Odpowiedzi:

215

1) Przejdź do conffolderu w katalogu instalacyjnym tomcat

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

2) Edytuj następujący tag w server.xml pliku

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

3) Zmień port=8080wartość naport=80

4) Zapisz plik.

5) Zatrzymaj Tomcat i uruchom go ponownie.

Romani
źródło
14
Pamiętaj też, aby zatrzymać i ponownie uruchomić Tomcat. Tylko mówię. :)
AllieCat
3
Zrobiłem to i otrzymuję błąd 404! Czy jest coś jeszcze, co powinienem robić?
Saturnian,
15
W etc/default/tomcat7zestawie AUTHBIND=yes, aby uniknąć błędu PermissionDenied dla portu 80.
Markus Pscheidt
1
Zobacz odpowiedź Rose dla środowiska Linux!
Marko
W tej odpowiedzi brakuje informacji / etc / authbind, patrz odpowiedź Rose poniżej
jorfus
119

Ubuntu 14.04 LTS w Amazon EC2. Poniższe kroki rozwiązały ten problem:

1. Edytuj plik server.xml i zmień port = „8080” na „80”

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

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

2. Edytuj plik tomcat7 (jeśli plik nie został utworzony, musisz go utworzyć)

sudo vi /etc/default/tomcat7

odkomentuj i zmień # AUTHBIND = nie na tak

3. Zainstaluj authbind

sudo apt-get install authbind

4. Uruchom następujące polecenia, aby zapewnić tomcat7 odczyt + wykonanie na porcie 80.

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

5. Zrestartuj tomcat:

sudo /etc/init.d/tomcat7 restart
Róża
źródło
1
Ten działa. Ludzie Linuksa przynajmniej działają dla mnie z Ubuntu 14.04.2 LTS.
Rodrigo Gurgel
3
Autobind to poprawna odpowiedź. Pamiętaj jednak, że możesz pominąć automatyczne przypisywanie w przypadku używania „sudo startup.sh”, ponieważ port 80 zostanie przyznany eskalowanemu użytkownikowi.
Marcio Jasinski
1
Dzięki!! Wiedziałem o włączaniu authbind w konfiguracji serwera, ale nie wiedziałem, że muszę utworzyć plik w authbind dla zarejestrowanego portu! Chciałbym, żeby OP zmienił przyjęte rozwiązanie na tę odpowiedź! (Widzę, że spóźniłeś się prawie 3 lata z odpowiedzią: P)
Fr0zenFyr
1
Działa z Tomcat 9 na Lubuntu 18.0.4, bez instalacji authbind, tylko dodaje ustawienie.
Marco Sulla,
107

W systemie Linux opartym na Debianie (a więc także w Ubuntu) musisz również przejść do /etc/default/tomcat7, odkomentować #AUTHBIND=nolinię i ustawić jej wartość na „tak”, aby umożliwić serwerowi połączenie się z uprzywilejowanym portem.

Pioneer Skies
źródło
2
Cześć, nie mam tego konkretnego pliku
nmkyuppie
Jaka wersja tomcat? Z jakiego systemu operacyjnego korzystasz?
Pioneer Skies
7
Nie działa dla Tomcat, jeśli jest zainstalowany przez zip / tar.gz, ponieważ nie tworzą pliku w / etc / defaults /.
Gorkamorka
9
Powyższa ścieżka powinna wyglądać następująco: / etc / default / tomcat7 (zwróć uwagę na brak `` s '' domyślnie)
Tristan Reid,
1
Co jest równe Tomcat 9?
katu
29

W systemach Ubuntu i Debian potrzeba kilku kroków:

  1. W pliku server.xml zmień wiersz <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>na port="80".

  2. Zainstaluj zalecany (nie wymagany) pakiet authbind za pomocą polecenia takiego jak:

    sudo apt-get install authbind

  3. Włącz authbind w pliku server.xml (w jednym /etc/tomcat6lub drugim /etc/tomcat7), odkomentowując i ustawiając linię taką jak:

    AUTHBIND=yes

Potrzebne są wszystkie trzy kroki.

Peter N. Steinmetz
źródło
5
Nie działa dla Tomcat (jeśli jest zainstalowany przez zip / tar.gz) w 13.10.
Gorkamorka
4
Aby uruchomić go z zip / tar.gz, wykonaj kroki 1 i 2 powyżej, dodaj AUTHBIND = yes do bin / setenv.sh (utwórz, jeśli nie ma) i zacznij od roota. Działa z LTS 12.04, powinien też działać w / 13.10.
Karol
W moim przypadku nie powiodło się (bez komunikatu o błędzie w catalina.out) bez pakietu authbind, działało po jego zainstalowaniu
golimar
Czy mógłbyś wskazać dokumentację dotyczącą AUTHBIND = yes? Nigdzie go nie znajduję.
ARX
Nie mogę też znaleźć wzmianki o ustawieniu AUTHBIND jako części konfiguracji elementu serwera w dokumentacji TOMCAT. Dziwne.
Peter N. Steinmetz
22

Próbowałem zmienić port z 8080na 80w, server.xmlale to nie zadziałało. Potem znalazłem alternatywę, zaktualizuj to, iptablesco na pewno ma wpływ na wydajność.

Używam następujących poleceń:

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
źródło
jak to cofnąć?
SAI GIRI CHARY AOUSULA
Uruchom następujące polecenie, aby usunąć routing: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol
17

Ponieważ poprzednie odpowiedzi nie działały dobrze (było dobrze, ale za mało) dla mnie na serwerze Ubuntu 14.04, wspominam o tych zaleceniach (to jest cytat).

Edycja: zauważ, że jak @ jason-faust wspomniał o tym w komentarzach, 14.04, authbindpakiet, który jest z nim dostarczany, obsługuje teraz IPv6, więc preferowanie IPv4 nie jest już potrzebne .

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

Jeśli już mam setenv.shplik /usr/share/tomcat7/binz CATALINA_OPTS, masz do wykorzystania:

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

Teraz możesz zmienić port na 80zgodnie z innymi odpowiedziami.

smonff
źródło
2
Dodam, że plik startup.sh znajduje się pod adresem: /usr/share/tomcat7/bin/startup.sh - Dla nas nowicjuszy nie jest to do końca oczywiste;)
ConMan
Zaktualizowano ścieżki @ConMan, to świetny pomysł, aby zapisać inne wyszukiwania. Przyznam, że poznanie tego miejsca na początku nie jest oczywiste.
smonff
1
Dzięki, to działało świetnie, jestem przyzwyczajony do centów, więc to było dla mnie pomocne, gdzie nie było to dla mnie problemem.
med116
1
Właśnie podążyłem za tym dzisiaj 14.04, pakiet authbind, który jest z nim dostarczany, obsługuje teraz IPv6, więc preferowanie IPv4 nie jest już potrzebne.
Jason Faust
Zrobiłem też: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils
5

Na nowoczesnym Linuksie najlepszym podejściem (dla mnie) jest użycie xinetd:

1) utwórz /etc/xinet.d/tomcat-http

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

2) utwórz /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 on

4) /etc/init.d/xinetd start

cgdave
źródło
Innym podejściem jest kompilacja i używanie jsvc, ale xinetd jest zdecydowanie łatwiejszy
cgdave
5

Jeśli ktoś szuka, jak zmienić numer portu tomcat w środowisku użytkownika Eclipse IDE to postępuje zgodnie z instrukcjami.

1. W widoku Serwery kliknij dwukrotnie nazwę serwera: wprowadź opis obrazu tutaj

2. Spowoduje to otwarcie strony konfiguracji Tomcat w następujący sposób: wprowadź opis obrazu tutaj

3. Zwróć uwagę, że numery portów są pokazane w tabeli po prawej stronie. Kliknij, aby edytować, na przykład: wprowadź opis obrazu tutaj

4. Spowoduje to zmianę numeru portu HTTP z 8080 na 80. Naciśnij Ctrl + S, aby zapisać zmianę i zrestartować serwer. Zmianę numeru portu możemy zauważyć w widoku konsoli: wprowadź opis obrazu tutaj

Ta cała zawartość została pobrana z poniższego linku, proszę odnieść się do tego linku, aby uzyskać dalsze informacje dzięki. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
źródło
4

Uruchomienie poniższego polecenia działało z. Próbowałem zmienić server.xmli plik konfiguracyjny, ale oba nie działały.

/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
źródło
3

Na serwerze linux możesz po prostu użyć tych poleceń, aby ponownie skonfigurować Tomcat do nasłuchiwania na porcie 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
źródło
2

jeśli używasz eclipse i modyfikowanie server.xml nie działa, spróbuj postępować zgodnie z artykułem .. mają kroki, aby zmodyfikować port, jeśli używasz IDE, takiego jak eclipse.

user3461044
źródło
1

Po prostu goto conf folder conf of tomcat

otwórz plik server.xml

Przejdź do jednego z węzłów łącznika, które wyglądają jak poniżej

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

Po prostu zmień port

zapisz i uruchom ponownie tomcat

ravi ranjan
źródło
1
Tylko w systemie Windows, prawda?
smonff
1

Oto kroki:

-> Podążaj ścieżką: {katalog tomcat> / conf -> Znajdź tę linię:

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

zmień numer portu z „8080” na „80”.

-> Zapisz plik.

-> Zrestartuj serwer :)

Madhusudan
źródło
0

Nie zapomnij edytować pliku. Otwórz plik /etc/default/tomcat7i zmień

#AUTHBIND=no

do

AUTHBIND=yes

następnie uruchom ponownie.

Patrikoko
źródło