Comment changer le port de Tomcat de 8080 à 80?

Réponses:

215

1) Accédez au confdossier dans le répertoire d'installation de tomcat

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

2) Modifier la balise suivante dans le server.xml fichier

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

3) Modifiez la port=8080valeur enport=80

4) Enregistrez le fichier.

5) Arrêtez votre Tomcat et redémarrez-le.

Romani
la source
14
Assurez-vous également d'arrêter et de redémarrer Tomcat. Juste dire. :)
AllieCat
3
J'ai fait cela et j'obtiens une erreur 404! Y a-t-il autre chose que je devrais faire?
Saturnian
15
Dans l' etc/default/tomcat7ensemble AUTHBIND=yes, pour éviter une erreur PermissionDenied pour le port 80.
Markus Pscheidt
1
Voir la réponse de Rose pour l'environnement Linux!
Marko
Cette réponse ne contient pas les informations / etc / authbind, voir la réponse de Rose ci
jorfus
119

Ubuntu 14.04 LTS, dans Amazon EC2. Les étapes suivantes ont résolu ce problème pour moi:

1. Modifiez server.xml et remplacez le port = "8080" par "80"

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

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

2. Modifiez le fichier tomcat7 (si le fichier n'est pas créé, vous devez le créer)

sudo vi /etc/default/tomcat7

décommentez et remplacez # AUTHBIND = no par yes

3. Installez authbind

sudo apt-get install authbind

4. Exécutez les commandes suivantes pour fournir tomcat7 read + execute sur le port 80.

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

5. Redémarrez tomcat:

sudo /etc/init.d/tomcat7 restart
Rose
la source
1
Celui-là fonctionne. Les gens de Linux, au moins fonctionne pour moi avec Ubuntu 14.04.2 LTS.
Rodrigo Gurgel le
3
Autobind est la bonne réponse. Mais notez que vous pouvez ignorer la liaison automatique au cas où vous utilisez 'sudo startup.sh' car le port 80 sera accordé à l'utilisateur escaladé.
Marcio Jasinski
1
Merci!! Je savais comment activer authbind dans la configuration du serveur mais je ne savais pas que je devais créer un fichier dans authbind pour le port enregistré! J'aurais aimé qu'OP ait changé la solution acceptée pour cette réponse! (Je vois que vous aviez presque 3 ans de retard pour répondre: P)
Fr0zenFyr
1
Il fonctionne avec Tomcat 9 sur Lubuntu 18.0.4, sans installation authbind, en ajoutant uniquement le paramètre.
Marco Sulla
107

Sur un Linux Debian (donc Ubuntu inclus), vous devez également vous rendre /etc/default/tomcat7, décommenter la #AUTHBIND=noligne et définir sa valeur sur «yes», afin de permettre au serveur de se lier sur un port privilégié.

Cieux des pionniers
la source
2
Salut, je n'ai pas ce fichier particulier
nmkyuppie
Quelle version de tomcat? Sur quel OS êtes-vous?
Pioneer Skies
7
Ne fonctionne pas pour Tomcat s'il est installé par zip / tar.gz, car ils ne créent pas le fichier dans / etc / defaults /.
Gorkamorka du
9
Ce chemin ci-dessus devrait être: / etc / default / tomcat7 (notez le manque de 's' par défaut)
Tristan Reid
1
Quel est le égal pour Tomcat 9?
katu
29

Sur les systèmes Ubuntu et Debian, plusieurs étapes sont nécessaires:

  1. Dans server.xml, modifiez la ligne <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>pour avoir port="80".

  2. Installez le package authbind recommandé (non requis), avec une commande comme:

    sudo apt-get install authbind

  3. Activez authbind dans le fichier server.xml (dans l'un /etc/tomcat6ou l' autre /etc/tomcat7) en décommentant et en définissant la ligne comme:

    AUTHBIND=yes

Les trois étapes sont nécessaires.

Peter N. Steinmetz
la source
5
Ne fonctionne pas pour Tomcat (s'il est installé par zip / tar.gz) dans 13.10.
Gorkamorka
4
Pour le faire fonctionner à partir de zip / tar.gz, suivez les étapes 1 et 2 ci-dessus, ajoutez AUTHBIND = yes à bin / setenv.sh (créez sinon) et démarrez à partir de la racine. Fonctionne avec LTS 12.04, devrait également fonctionner avec 13.10.
karl
Dans mon cas, il a échoué (sans message d'erreur dans catalina.out) sans le package authbind, a fonctionné après son installation
golimar
Pourriez-vous s'il vous plaît indiquer la documentation sur AUTHBIND = yes? Je ne le trouve nulle part.
ARX
Je ne trouve pas non plus de mention du paramètre AUTHBIND dans le cadre de la configuration de l'élément serveur dans la documentation TOMCAT. Étrange.
Peter N.Steinmetz
22

J'ai essayé de changer le port de 8080à 80dans le server.xmlmais cela n'a pas fonctionné pour moi. Ensuite, j'ai trouvé une alternative, mettre à jour le iptablesdont je suis sûr qu'il y a un impact sur les performances.

J'utilise les commandes suivantes:

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
la source
comment inverser cela?
SAI GIRI CHARY AOUSULA
Exécutez la commande suivante pour supprimer le routage: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol
17

Comme les réponses précédentes n'ont pas bien fonctionné (c'était bien, mais pas assez) pour moi sur un serveur Ubuntu 14.04, je mentionne ces recommandations (c'est une citation).

Edit: notez que comme @ jason-faust l'a mentionné dans les commentaires, le 14.04, le authbindpaquet qui l'accompagne prend en charge IPv6 maintenant, donc la chose préférée IPv4 n'est plus nécessaire .

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

Si vous avez déjà un setenv.shfichier /usr/share/tomcat7/binavec CATALINA_OPTS, vous devez utiliser:

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

Vous pouvez maintenant changer le port 80comme indiqué dans d'autres réponses.

smonff
la source
2
J'ajouterais que le fichier startup.sh se trouve à: /usr/share/tomcat7/bin/startup.sh - Ce n'est pas complètement évident pour nous les débutants;)
ConMan
@ConMan a mis à jour les chemins, c'est une excellente idée pour enregistrer d'autres recherches. J'avoue que connaître cet endroit n'est pas évident au début.
smonff
1
Merci, cela a très bien fonctionné, je suis habitué aux centos, donc cela m'a été utile, là où ce n'était pas un problème pour moi.
med116
1
Je viens de suivre cela aujourd'hui le 14.04, le paquet authbind qui l'accompagne prend en charge IPv6 maintenant, donc la chose préférée IPv4 n'est plus nécessaire.
Jason Faust
J'ai aussi fait: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils
5

Sur Linux moderne, la meilleure approche (pour moi) est d'utiliser xinetd:

1) créez /etc/xinet.d/tomcat-http

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

2) créez /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 sur

4) /etc/init.d/xinetd start

cgdave
la source
Une autre approche consiste à compiler et à utiliser jsvc mais xinetd est définitivement plus facile
cgdave
5

Si quelqu'un cherche, comment changer le numéro de port tomcat dans l'utilisateur Eclipse IDE sont les étapes suivantes.

Dans la vue Serveurs, double-cliquez sur le nom du serveur: entrez la description de l'image ici

Cela ouvrira une page de configuration pour Tomcat comme suit: entrez la description de l'image ici

3.Notez que les numéros de port sont indiqués dans le tableau de droite. Cliquez pour modifier, par exemple: entrez la description de l'image ici

4. Cela changera le numéro de port pour HTTP de 8080 à 80. Appuyez sur Ctrl + S pour enregistrer la modification et redémarrer le serveur. Nous pouvons repérer le changement de numéro de port dans la vue Console: entrez la description de l'image ici

Tout ce contenu a été tiré du lien ci-dessous, veuillez vous référer à ce lien pour plus d'informations merci. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
la source
4

L'exécution de la commande ci-dessous a fonctionné avec. J'ai essayé de changer server.xmlet le fichier conf mais les deux n'ont pas fonctionné.

/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
la source
3

Sur un serveur Linux, vous pouvez simplement utiliser ces commandes pour reconfigurer Tomcat pour écouter sur le port 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
la source
2

si vous utilisez eclipse et que la modification de server.xml ne fonctionne pas pour vous, essayez l' article suivant .. ils ont des étapes pour modifier le port si vous utilisez l'IDE comme eclipse.

user3461044
la source
1

Allez dans le dossier de conf de tomcat

ouvrez le fichier server.xml

Aller à l'un des nœuds de connecteur qui ressemble à ce qui suit

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

Changez simplement le port

enregistrer et redémarrer tomcat

ravi ranjan
la source
1
Sur Windows seulement, n'est-ce pas?
smonff
1

Voici les étapes:

-> Suivez le chemin: {répertoire tomcat> / conf -> Trouvez cette ligne:

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

changer le numéro de port de "8080" à "80".

-> Enregistrez le fichier.

-> Redémarrez le serveur :)

Madhusudan
la source
0

N'oubliez pas de modifier le fichier. Ouvrir le fichier /etc/default/tomcat7et modifier

#AUTHBIND=no

à

AUTHBIND=yes

puis redémarrez.

Patrikoko
la source