Как заставить веб-сервер Jetty прослушивать порт 80?

13

Я хотел бы использовать Jetty в качестве веб-сервера.

Я отредактировал файл конфигурации /etc/default/jettyи установил:

# 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

Теперь я могу связаться с веб-сервером Jetty по адресу, http://192.168.1.10:8080но я бы хотел, чтобы Jetty прослушивал порт 80.

Я пробовал этот параметр в том же файле конфигурации:

# The network port used by Jetty
JETTY_PORT=80

и затем перезапустите Jetty, sudo service jetty restartно это не работает.

Как я могу изменить, чтобы веб-сервер Jetty прослушивал порт 80?

Jonas
источник
Вы также можете изменить его из start.ini (jetty root), там у вас есть -> jetty.port - строка, раскомментируйте и присвойте ему значение (по умолчанию 8080)
Родислав Молдавский

Ответы:

7

Вам нужно будет отредактировать /etc/jetty/jetty.xmlфайл. Ищите абзац, который говорит:

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

Измените jetty.portСвойство 80следующим образом:

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

Перезапустите причал. Это должно сделать это.


Так как вышеописанный метод не работает для OP, и запуск от имени root не рекомендуется, есть альтернативный метод, как упомянуто в этом документе .

theTuxRacer
источник
Это не работает Я также проверил, sudo netstat -nlpно Jetty нет в списке.
Джонас
Это может быть потому, что причал не работает как корень. Я опробую настройку и скоро опубликую.
theTuxRacer
Я смог получить страницу по умолчанию, запустив sudo java -jar start.jarиз /usr/share/jetty. Я также настроил /etc/jetty/jetty-setuid.xmlдля запуска в качестве привилегированного пользователя.
theTuxRacer
Дополнительно взгляните на: запуск Jetty от имени пользователя root .
theTuxRacer
1
Я бегу, sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080и теперь все работает нормально. Благодарность!
Джонас
1

Я использую Jetty 9. В файле start.ini вы можете найти и изменить свойство jetty.port. Затем вы должны перезапустить jetty.service.

Сул
источник
Это может быть полезно, если вы расширите свой ответ, указав местоположение файла start.ini, строку в start.ini, которую необходимо изменить, и измененный текст, который необходимо использовать.
Центавр