Wie ändere ich den Port von Tomcat von 8080 auf 80?

Antworten:

215

1) Wechseln Sie in den confOrdner im Tomcat-Installationsverzeichnis

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

2) Bearbeiten Sie das folgende Tag in der server.xml Datei

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

3) Ändern Sie den port=8080Wert inport=80

4) Datei speichern.

5) Stoppen Sie Ihren Tomcat und starten Sie ihn neu.

Romani
quelle
14
Stellen Sie außerdem sicher, dass Sie Tomcat stoppen und neu starten. Nur sagen. :)
AllieCat
3
Ich habe das getan und ich bekomme einen 404 Fehler! Gibt es noch etwas, was ich tun sollte?
Saturnian
15
Im etc/default/tomcat7Set AUTHBIND=yes, um einen PermissionDenied-Fehler für den Port 80 zu vermeiden.
Markus Pscheidt
1
Siehe Roses Antwort für die Linux-Umgebung!
Marko
Dieser Antwort fehlen die / etc / authbind-Informationen, siehe Antwort von Rose unten
jorfus
119

Ubuntu 14.04 LTS, in Amazon EC2. Die folgenden Schritte haben dieses Problem für mich behoben:

1. Bearbeiten Sie die Datei server.xml und ändern Sie port = "8080" in "80".

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

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

2. Bearbeiten Sie die Tomcat7-Datei (wenn die Datei nicht erstellt wurde, müssen Sie sie erstellen).

sudo vi /etc/default/tomcat7

Kommentar entfernen und # AUTHBIND = nein zu ja ändern

3. Installieren Sie authbind

sudo apt-get install authbind

4. Führen Sie die folgenden Befehle aus, um tomcat7 read + execute auf Port 80 bereitzustellen.

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

5. Tomcat neu starten:

sudo /etc/init.d/tomcat7 restart
Rose
quelle
1
Das funktioniert. Linux Leute, arbeitet zumindest für mich mit Ubuntu 14.04.2 LTS.
Rodrigo Gurgel
3
Autobind ist die richtige Antwort. Beachten Sie jedoch, dass Sie die automatische Bindung überspringen können, wenn Sie 'sudo startup.sh' verwenden, da Port 80 einem eskalierten Benutzer gewährt wird.
Marcio Jasinski
1
Vielen Dank!! Ich wusste, wie man authbind in der Serverkonfiguration aktiviert, wusste aber nicht, dass ich eine Datei in authbind für den registrierten Port erstellen muss! Ich wünschte, OP hätte die akzeptierte Lösung für diese Antwort geändert! (Ich sehe, dass Sie fast 3 Jahre zu spät
geantwortet haben
1
Es funktioniert mit Tomcat 9 unter Lubuntu 18.0.4, ohne es zu installieren authbind, sondern nur die Einstellung hinzuzufügen.
Marco Sulla
107

Auf einem Linux-Debian-basierten Computer (einschließlich Ubuntu) müssen Sie auch /etc/default/tomcat7die #AUTHBIND=noZeile auskommentieren und ihren Wert auf "Ja" setzen, damit der Server an einen privilegierten Port gebunden wird.

Pionierhimmel
quelle
2
Hallo, ich habe diese bestimmte Datei nicht
nmkyuppie
Welche Version von Tomcat? Auf welchem ​​Betriebssystem bist du?
Pioneer Skies
7
Funktioniert nicht für Tomcat, wenn es von zip / tar.gz installiert wird, da die Datei nicht in / etc / defaults / erstellt wird.
Gorkamorka
9
Dieser Pfad oben sollte lauten: / etc / default / tomcat7 (beachten Sie das Fehlen von 's' in der Standardeinstellung)
Tristan Reid
1
Was ist das Gleiche für Tomcat 9?
Katu
29

Auf Ubuntu- und Debian-Systemen sind mehrere Schritte erforderlich:

  1. Ändern Sie in server.xml die Zeile <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>, die Sie haben möchten port="80".

  2. Installieren Sie das empfohlene (nicht erforderliche) authbind-Paket mit einem Befehl wie:

    sudo apt-get install authbind

  3. Aktivieren Sie authbind in der Datei server.xml (entweder in /etc/tomcat6oder /etc/tomcat7), indem Sie die Zeile auskommentieren und wie folgt festlegen :

    AUTHBIND=yes

Alle drei Schritte sind erforderlich.

Peter N. Steinmetz
quelle
5
Funktioniert nicht für Tomcat (wenn von zip / tar.gz installiert) in 13.10.
Gorkamorka
4
Um es von zip / tar.gz aus zum Laufen zu bringen, führen Sie die obigen Schritte 1 und 2 aus, fügen Sie AUTHBIND = yes zu bin / setenv.sh hinzu (erstellen, wenn nicht vorhanden) und beginnen Sie mit root. Funktioniert mit LTS 12.04, sollte auch mit 13.10 funktionieren.
Karl
In meinem Fall schlug es fehl (ohne Fehlermeldung in Catalina.out) ohne das Authbind-Paket, funktionierte nach der Installation
Golimar
Könnten Sie bitte auf die Dokumentation zu AUTHBIND = yes verweisen? Ich finde es nirgendwo.
ARX
Ich kann die AUTHBIND-Einstellung auch nicht als Teil der Serverelementkonfiguration in der TOMCAT-Dokumentation erwähnen. Seltsam.
Peter N. Steinmetz
22

Ich habe versucht, den Port von 8080in 80in zu ändern, server.xmlaber es hat bei mir nicht funktioniert. Dann habe ich eine Alternative gefunden, die aktualisiert, von der iptablesich sicher bin, dass sie sich auf die Leistung auswirkt.

Ich benutze die folgenden Befehle:

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
quelle
Wie kann man das rückgängig machen?
SAI GIRI CHARY AOUSULA
Führen Sie den folgenden Befehl aus, um das Routing zu entfernen: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol
17

Da frühere Antworten auf einem 14.04 Ubuntu-Server für mich nicht gut funktionierten (es war gut, aber nicht genug), erwähne ich diese Empfehlungen (dies ist ein Zitat).

Bearbeiten: Beachten Sie, dass, wie @ jason-faust es in den Kommentaren am 14.04 erwähnt hat, dasauthbind mitgelieferte Paket jetzt IPv6 unterstützt, sodass das bevorzugte IPv4-Ding nicht mehr benötigt wird .

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

Wenn Sie bereits eine setenv.shDatei /usr/share/tomcat7/binmit haben CATALINA_OPTS, müssen Sie Folgendes verwenden:

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

Jetzt können Sie den Port auf 80wie in anderen Antworten angegeben ändern .

smonff
quelle
2
Ich würde hinzufügen, dass sich die Datei startup.sh unter folgender Adresse befindet: /usr/share/tomcat7/bin/startup.sh - Es ist für uns Neulinge nicht ganz offensichtlich;)
ConMan
@ ConMan aktualisierte Pfade, das ist eine großartige Idee, um andere Suchanfragen zu speichern. Ich gebe zu, dass es am Anfang nicht offensichtlich ist, diesen Ort zu kennen.
Smonff
1
Danke, das hat super funktioniert, ich bin an Centos gewöhnt, also war das hilfreich für mich, wo dies für mich kein Problem war.
med116
1
Ich habe dies heute am 14.04. Verfolgt. Das mitgelieferte Authbind-Paket unterstützt jetzt IPv6, sodass das bevorzugte IPv4-Ding nicht mehr benötigt wird.
Jason Faust
Ich habe auch getan: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils
5

Unter modernem Linux ist der beste Ansatz (für mich) die Verwendung von xinetd:

1) Erstellen Sie /etc/xinet.d/tomcat-http

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

2) Erstellen Sie /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
quelle
Ein anderer Ansatz ist das Kompilieren und Verwenden von jsvc, aber xinetd ist definitiv einfacher
cgdave
5

Wenn jemand nach etwas sucht, können Sie die folgenden Schritte ausführen, um die Tomcat-Portnummer im Eclipse IDE-Benutzer zu ändern.

1. Doppelklicken Sie in der Serveransicht auf den Servernamen: Geben Sie hier die Bildbeschreibung ein

2. Dadurch wird eine Konfigurationsseite für Tomcat wie folgt geöffnet: Geben Sie hier die Bildbeschreibung ein

3. Beachten Sie, dass die Portnummern in der Tabelle rechts aufgeführt sind. Klicken Sie zum Bearbeiten zum Beispiel: Geben Sie hier die Bildbeschreibung ein

4. Dadurch wird die Portnummer für HTTP von 8080 auf 80 geändert. Drücken Sie Strg + S, um die Änderung zu speichern und den Server neu zu starten. Wir können die Änderung der Portnummer in der Konsolenansicht erkennen: Geben Sie hier die Bildbeschreibung ein

Dies alles Inhalt wurde von unten Link genommen, bitte verweisen Sie auf diesen Link für weitere Informationen danke. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
quelle
4

Das Ausführen des folgenden Befehls funktionierte mit. Versuchte das Ändern server.xmlund die conf-Datei, aber beide funktionierten nicht.

/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
quelle
3

Auf einem Linux-Server können Sie Tomcat einfach mit diesen Befehlen so konfigurieren, dass Port 80 überwacht wird:

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
quelle
2

Wenn Sie Eclipse verwenden und das Ändern von server.xml für Sie nicht funktioniert, versuchen Sie den folgenden Artikel . Sie haben Schritte zum Ändern des Ports, wenn Sie IDE wie Eclipse verwenden.

user3461044
quelle
1

Gehen Sie einfach zum Conf-Ordner von Tomcat

Öffnen Sie die Datei server.xml

Gehen Sie zu einem der Verbindungsknoten, die wie folgt aussehen

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

Ändern Sie einfach den Port

Tomcat speichern und neu starten

Ravi Ranjan
quelle
1
Nur unter Windows, nicht wahr?
Smonff
1

Hier sind die Schritte:

-> Folgen Sie dem Pfad: {tomcat directory> / conf -> Suchen Sie diese Zeile:

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

Ändern Sie die Portnummer von "8080" in "80".

-> Speichern Sie die Datei.

-> Starten Sie den Server neu :)

Madhusudan
quelle
0

Vergessen Sie nicht, die Datei zu bearbeiten. Datei öffnen /etc/default/tomcat7und ändern

#AUTHBIND=no

zu

AUTHBIND=yes

dann neu starten.

Patrikoko
quelle