Wie lasse ich Jetty Webserver auf Port 80 lauschen?

13

Ich möchte Jetty als Webserver nutzen.

Ich habe die Konfigurationsdatei um bearbeitet /etc/default/jettyund eingestellt:

# 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

Jetzt kann ich den Jetty-Webserver unter erreichen, http://192.168.1.10:8080aber ich möchte, dass Jetty auf Port 80 lauscht.

Ich habe diese Einstellung in der gleichen Konfigurationsdatei ausprobiert:

# The network port used by Jetty
JETTY_PORT=80

und starte dann Jetty mit neu, sudo service jetty restartaber es funktioniert nicht.

Wie kann ich ändern, dass der Jetty-Webserver Port 80 überwacht?

Jonas
quelle
Sie können es auch von der start.ini (Stegwurzel) aus ändern, dort haben Sie -> jetty.port - Zeile, entfernen Sie das Kommentarzeichen und geben Sie einen Wert (Standard ist 8080)
Rodislav Moldovan

Antworten:

7

Sie müssen die /etc/jetty/jetty.xmlDatei bearbeiten . Suchen Sie nach einem Absatz, der besagt:

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

Ändern Sie die jetty.portEigenschaft 80wie folgt:

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

Starten Sie den Steg neu. Das sollte es tun.


Da die obige Methode für OP nicht funktioniert hat und von der Ausführung als Root abgeraten wird, gibt es eine alternative Methode, wie in diesem Dokument erwähnt .

theTuxRacer
quelle
Das geht nicht. Ich habe auch nachgefragt, sudo netstat -nlpaber Jetty ist nicht aufgeführt.
Jonas
Dies kann daran liegen, dass der Steg nicht als Root ausgeführt wird. Ich probiere eine Einstellung aus und werde in einer Weile posten.
theTuxRacer
Ich konnte die Standardseite bekommen , indem Sie sudo java -jar start.jaraus /usr/share/jetty. Ich habe auch die so konfiguriert /etc/jetty/jetty-setuid.xml, dass sie als privilegierter Benutzer startet.
theTuxRacer
Schauen Sie sich außerdem Folgendes an: Ausführen von Jetty als Benutzer ohne Rootberechtigung .
theTuxRacer
1
Ich renne sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080und jetzt funktioniert es gut. Vielen Dank!
Jonas
1

Ich benutze Jetty 9. In der Datei start.ini können Sie die Eigenschaft finden und ändern jetty.port. Dann müssen Sie jetty.service neu starten.

Sul
quelle
Es kann nützlich sein, wenn Sie Ihre Antwort erweitern, indem Sie den Speicherort der Datei start.ini, die zu ändernde Zeile in start.ini und den zu verwendenden geänderten Text angeben.
CentaurusA