Como fazer o servidor web Jetty escutar na porta 80?

13

Eu gostaria de usar o Jetty como servidor da web.

Eu editei o arquivo de configuração em /etc/default/jettye defini:

# 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

Agora posso acessar o servidor da Web Jetty em, http://192.168.1.10:8080mas gostaria de ter o Jetty ouvindo na porta 80.

Eu tentei essa configuração no mesmo arquivo de configuração:

# The network port used by Jetty
JETTY_PORT=80

e reinicie o Jetty com sudo service jetty restartmas não funciona.

Como posso mudar para que o servidor da Web Jetty esteja escutando na porta 80?

Jonas
fonte
você pode alterá-lo também a partir do start.ini (jetty root), lá você tem -> jetty.port - line, descomente e dê um valor (o padrão é 8080) #
Rodislav Moldovan

Respostas:

7

Você precisará editar o /etc/jetty/jetty.xmlarquivo. Procure um parágrafo que diga:

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

Altere a jetty.portpropriedade da 80seguinte maneira:

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

Reinicie o cais. Isso deve resolver.


Como o método acima não funcionou para o OP e a execução como raiz é desencorajada, existe um método alternativo, como mencionado neste documento .

theTuxRacer
fonte
Isso não funciona. Também verifiquei com o sudo netstat -nlpJetty, mas não está listado.
Jonas
Pode ser porque o jetty não está sendo executado como root. Estou testando uma configuração e publicarei em breve.
theTuxRacer
Consegui obter a página padrão executando a sudo java -jar start.jarpartir de /usr/share/jetty. Eu também configurei o /etc/jetty/jetty-setuid.xmlpara iniciar como usuário privilegiado.
theTuxRacer
Além disso, veja: executando o jetty como usuário não root .
theTuxRacer
1
Eu corro sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080e agora funciona bem. Obrigado!
Jonas
1

Estou usando o Jetty 9. No arquivo start.ini, você pode encontrar e modificar a propriedade jetty.port. Então você deve reiniciar o jetty.service.

Sul
fonte
Pode ser útil se você expandir sua resposta, especificando o local do arquivo start.ini, a linha em start.ini que deve ser modificada e o texto modificado que deve ser usado.
CentaurusA