web-dev-qa-db-fra.com

Pourquoi Tomcat fonctionne-t-il avec le port 8080 mais pas le 80?

J'ai démarré et testé Tomcat sous le port 8080 (par défaut). Maintenant, j'ai modifié le port du connecteur à 80 et redémarré Tomcat, rien ne s'affiche sur mon installation minimale de Debian 6.0. Maintenant, où est le truc ici?

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           URIEncoding="UTF-8"
           redirectPort="8443" />
17
Dominik

allez dans/etc/default/Tomcat6 et changez #AUTHBIND=no en AUTHBIND=yes

 # If you run Tomcat on port numbers that are all higher than 1023, then you
 # do not need authbind.  It is used for binding Tomcat to lower port numbers.
 # NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.
 # (yes/no, default: no)
 #AUTHBIND=no
31
Dominik

Deux raisons typiques:

  • Vous n'êtes probablement pas autorisé à écouter un port inférieur à 1024 (nécessite généralement des privilèges d'administrateur, par exemple, être root)
  • Quelque chose d'autre est peut-être déjà à l'écoute sur le port 80 (Apache, par exemple).
11
Jon Skeet

Avez-vous démarré Tomcat sur le port 80 en tant que root? Vous devez être root pour lier les ports <= 1024 sous Linux. 

9
rooftop

Si rien de ce qui a été commenté auparavant ne fonctionne (comme cela m’est arrivé), vous pouvez diriger le trafic depuis le port 80 vers le 8080.

Pour le faire:

http://forum.slicehost.com/index.php?p=/discussion/2497/iptables-redirect-port-80-to-port-8080/p1

En un mot, tapez ces trois commandes dans un terminal:

$ Sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$ Sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
$ Sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 
8
Jesus

Exécutez votre script de démarrage en tant que root après avoir modifié la liaison.

Sudo ./<path to Tomcat bin director>/startup.sh
2
Arvind Sridharan

Vous pouvez utiliser authbind/privbind ou des fonctionnalités pour vous connecter au port 80.

0
user1462586

arrêtez le service Apache, puis exécutez Tomcat, vous devriez être bon. Par défaut, Apache est exécuté sur le port 80. 

0
Satya