Comment faire pour écouter le serveur Web Jetty sur le port 80?

13

Je voudrais utiliser Jetty en tant que serveur Web.

J'ai édité le fichier de configuration dans /etc/default/jettyet défini:

# change to 0 to allow Jetty start
NO_START=0

# Listen to connections from this network host
# Use 0.0.0.0 as host to accept all connections.
JETTY_HOST=0.0.0.0

Maintenant, je peux atteindre le serveur Web Jetty à http://192.168.1.10:8080mais j'aimerais que Jetty écoute sur le port 80.

J'ai essayé ce paramètre dans le même fichier de configuration:

# The network port used by Jetty
JETTY_PORT=80

puis redémarrez Jetty avec sudo service jetty restartmais cela ne fonctionne pas.

Comment puis-je changer pour que le serveur Web Jetty écoute sur le port 80?

Jonas
la source
vous pouvez également le changer à partir de start.ini (racine de la jetée), là vous avez -> jetty.port - ligne, décommenter et lui donner une valeur (la valeur par défaut est 8080)
Rodislav Moldovan

Réponses:

7

Vous devrez modifier le /etc/jetty/jetty.xmlfichier. Recherchez un paragraphe qui dit:

<Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="host"><SystemProperty name="jetty.host" /></Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8090"/></Set>
            <Set name="maxIdleTime">30000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
        <Set name="lowResourcesConnections">5000</Set>
        <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>

Modifiez la jetty.portpropriété 80comme suit:

<Set name="port"><SystemProperty name="jetty.port" default="80"/></Set>

Redémarrez la jetée. Ça devrait le faire.


Étant donné que la méthode ci-dessus n'a pas fonctionné pour OP et que l'exécution en tant que root est déconseillée, il existe une méthode alternative, comme mentionné dans ce document .

theTuxRacer
la source
Ça ne marche pas. J'ai également vérifié avec sudo netstat -nlpmais Jetty n'est pas répertoriée.
Jonas
Cela peut être dû au fait que jetty ne s'exécute pas en tant que root. J'essaie un paramètre et publierai dans un certain temps.
theTuxRacer
J'ai pu obtenir la page par défaut en exécutant à sudo java -jar start.jarpartir de /usr/share/jetty. J'ai également configuré le /etc/jetty/jetty-setuid.xmlpour démarrer en tant qu'utilisateur privilégié.
theTuxRacer
Jetez également un œil à: exécuter jetty en tant qu'utilisateur non root .
theTuxRacer
1
Je cours sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080et maintenant ça marche bien. Merci!
Jonas
1

J'utilise Jetty 9. Dans le fichier start.ini, vous pouvez trouver et modifier la propriété jetty.port. Ensuite, vous devez redémarrer jetty.service.

Sul
la source
Il peut être utile si vous développez votre réponse en spécifiant l'emplacement du fichier start.ini, la ligne dans start.ini qui doit être modifiée et le texte modifié qui doit être utilisé.
CentaurusA