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.


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

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.


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.


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


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 .


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


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


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

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

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.


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


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


0

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

#AUTHBIND=no

zu

AUTHBIND=yes

dann neu starten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.