Come cambiare il porto di Tomcat da 8080 a 80?


Risposte:


215

1) Vai alla confcartella nella directory di installazione di Tomcat

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

2) Modifica il seguente tag nel server.xml file

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

3) Modificare il port=8080valore inport=80

4) Salva file.

5) Arrestare Tomcat e riavviarlo.


14
Inoltre, assicurati di arrestare e riavviare Tomcat. Sto solo dicendo. :)
AllieCat il

3
Ho fatto questo e ho ricevuto un errore 404! C'è qualcos'altro che dovrei fare?
Saturniano,

15
Nel etc/default/tomcat7set AUTHBIND=yes, per evitare un errore PermissionDenied per la porta 80.
Markus Pscheidt,

1
Vedi la risposta di Rose per l'ambiente Linux!
Marko,

Questa risposta è priva delle informazioni / etc / authbind, vedi la risposta di Rose qui sotto
jorfus

119

Ubuntu 14.04 LTS, in Amazon EC2. I seguenti passaggi hanno risolto questo problema per me:

1. Modifica server.xml e cambia port = "8080" in "80"

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

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

2. Modifica il file tomcat7 (se il file non è stato creato, devi crearlo)

sudo vi /etc/default/tomcat7

decommentare e modificare # AUTHBIND = no in yes

3. Installa authbind

sudo apt-get install authbind

4. Eseguire i comandi seguenti per fornire tomcat7 read + execute sulla porta 80.

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

5. Riavvia Tomcat:

sudo /etc/init.d/tomcat7 restart

1
Quello funziona. Persone Linux, almeno funziona per me con Ubuntu 14.04.2 LTS.
Rodrigo Gurgel,

3
Autobind è la risposta corretta. Ma nota che puoi saltare l'autobind nel caso tu stia usando 'sudo startup.sh' poiché la porta 80 verrà concessa all'utente con escalation.
Marcio Jasinski,

1
Grazie!! Sapevo di abilitare authbind nella configurazione del server ma non sapevo che dovevo creare un file in authbind per la porta registrata! Vorrei che OP avesse cambiato la soluzione accettata per questa risposta! (Vedo che eri in ritardo di quasi 3 anni per rispondere: P)
Fr0zenFir

1
Funziona con Tomcat 9 su Lubuntu 18.0.4, senza installazione authbind, aggiungendo solo l'impostazione.
Marco Sulla

107

Su Linux basato su Debian (incluso Ubuntu incluso) devi anche andare a /etc/default/tomcat7, decommentare la #AUTHBIND=nolinea e impostare il suo valore su 'yes', al fine di consentire al server di legarsi su una porta privilegiata.


2
Ciao non ho quel particolare file
nmkyuppie il

Quale versione di Tomcat? Su quale sistema operativo sei?
Pioneer Skies,

7
Non funziona per Tomcat se installato da zip / tar.gz, poiché non creano il file in / etc / defaults /.
Gorkamorka,

9
Quel percorso sopra dovrebbe essere: / etc / default / tomcat7 (nota la mancanza di 's' in default)
Tristan Reid,

1
Qual è uguale per Tomcat 9?
katu,

29

Sui sistemi Ubuntu e Debian, sono necessari diversi passaggi:

  1. In server.xml, modifica la riga <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>in avere port="80".

  2. Installa il pacchetto authbind raccomandato (non richiesto), con un comando come:

    sudo apt-get install authbind

  3. Abilita authbind nel file server.xml (in uno /etc/tomcat6o o /etc/tomcat7) decommentando e impostando la riga come:

    AUTHBIND=yes

Sono necessari tutti e tre i passaggi.


5
Non funziona per Tomcat (se installato da zip / tar.gz) in 13.10.
Gorkamorka,

4
Per farlo funzionare da zip / tar.gz, esegui i passaggi 1 e 2 sopra, aggiungi AUTHBIND = yes a bin / setenv.sh (crea se non c'è) e inizia da root. Funziona con LTS 12.04, dovrebbe funzionare anche con 13.10.
karl,

Nel mio caso non è riuscito (senza alcun messaggio di errore in catalina.out) senza il pacchetto authbind, ha funzionato dopo averlo installato
golimar

Potresti indicare la documentazione su AUTHBIND = yes? Non lo trovo da nessuna parte.
ARX,

Non riesco nemmeno a trovare un riferimento all'impostazione AUTHBIND come parte della configurazione dell'elemento server nella documentazione TOMCAT. Strano.
Peter N. Steinmetz,

22

Ho provato a cambiare la porta da 8080a 80in server.xmlma non ha funzionato per me. Poi ho trovato un'alternativa, aggiorna quella di iptablescui sono sicuro che abbia un impatto sulle prestazioni.

Uso i seguenti comandi:

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


come ripristinare questo?
SAI GIRI CHARY AOUSULA

Eseguire il comando seguente per rimuovere il routing: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol

17

Poiché le risposte precedenti non funzionavano bene (era buono, ma non abbastanza) per me su un server Ubuntu 14.04, menziono questi consigli (questa è una citazione).

Modifica: nota che come @ jason-faust lo ha menzionato nei commenti, il 14.04, il authbindpacchetto fornito con esso ora supporta IPv6, quindi la cosa preferita IPv4 non è più necessaria .

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

Se hai già un setenv.shfile /usr/share/tomcat7/bincon CATALINA_OPTS, devi usare:

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

Ora puoi cambiare la porta 80come indicato in altre risposte.


2
Vorrei aggiungere che il file startup.sh si trova in: /usr/share/tomcat7/bin/startup.sh - Non è del tutto ovvio per noi neofiti;)
ConMan

Percorsi aggiornati di @ConMan, è un'ottima idea per salvare altre ricerche. Ammetto che conoscere questo posto non è ovvio all'inizio.
smonff,

1
Grazie, ha funzionato alla grande, sono abituato a centos, quindi questo mi è stato utile, dove questo non è stato un problema per me.
med116,

1
L'ho seguito oggi il 14.04, il pacchetto authbind fornito con esso supporta IPv6 ora, quindi la cosa preferita IPv4 non è più necessaria.
Jason Faust,

Ho anche fatto: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils

5

Su Linux moderno l'approccio migliore (per me) è usare xinetd:

1) crea /etc/xinet.d/tomcat-http

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

2) creare /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 acceso

4) /etc/init.d/xinetd start


Un altro approccio è quello di compilare e usare jsvc ma xinetd è decisamente più semplice
cgdave

5

Se qualcuno sta cercando, come modificare il numero di porta Tomcat nell'utente IDE Eclipse sono i seguenti passaggi.

1.Nella vista Server, fai doppio clic sul nome del server: inserisci qui la descrizione dell'immagine

2.Questo aprirà una pagina di configurazione per Tomcat come segue: inserisci qui la descrizione dell'immagine

3. Notare che i numeri di porta sono mostrati nella tabella a destra. Fare clic per modificare, ad esempio: inserisci qui la descrizione dell'immagine

4.Questo cambierà il numero di porta per HTTP da 8080 a 80. Premi Ctrl + S per salvare la modifica e riavviare il server. È possibile individuare la modifica del numero di porta nella vista Console: inserisci qui la descrizione dell'immagine

Tutto questo contenuto è stato preso dal link sottostante, si prega di fare riferimento a quel link per ulteriori informazioni, grazie. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse


4

L'esecuzione del comando di seguito ha funzionato con. Ho provato a cambiare server.xmle il file conf ma entrambi non hanno funzionato.

/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

Su un server Linux puoi semplicemente usare questi comandi per riconfigurare Tomcat per l'ascolto sulla porta 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

se stai usando eclipse e modificando server.xml non funziona per te allora prova a seguire l' articolo .. hanno dei passaggi per modificare la porta se stai usando IDE come eclipse.


1

Vai alla cartella conf di Tomcat

aprire il file server.xml

Vai a uno dei nodi del connettore che assomigliano al seguente

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

Basta cambiare la porta

salva e riavvia tomcat


1
Solo su Windows non è vero?
smonff

1

Ecco i passaggi:

-> Segui il percorso: {directory tomcat> / conf -> Trova questa riga:

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

cambia il numero di porta da "8080" a "80".

-> Salva il file.

-> Riavvia il server :)


0

Non dimenticare di modificare il file. Apri il file /etc/default/tomcat7e modifica

#AUTHBIND=no

per

AUTHBIND=yes

quindi riavviare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.