Como alterar a porta do Tomcat de 8080 para 80?

Respostas:

215

1) Vá para a confpasta no diretório de instalação do tomcat

 e.g. C:\Tomcat 6.0\conf\

2) Edite a seguinte tag no server.xml arquivo

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3) Altere o port=8080valor paraport=80

4) Salve o arquivo.

5) Pare o seu Tomcat e reinicie-o.

Romani
fonte
14
Além disso, certifique-se de parar e reiniciar o Tomcat. Apenas dizendo. :)
Alliecat
3
Eu fiz isso e recebo um erro 404! Há mais alguma coisa que eu deveria estar fazendo?
Saturnian
15
No etc/default/tomcat7conjunto AUTHBIND=yes, para evitar um erro de PermissionDenied para a porta 80. #
Markus Pscheidt
1
Veja a resposta de Rose para o ambiente Linux!
28415 Marko
Esta resposta não possui as informações do / etc / authbind, veja a resposta de Rose abaixo
jorfus 9/16/16
119

Ubuntu 14.04 LTS, no Amazon EC2. Os seguintes passos resolveram este problema para mim:

1. Edite server.xml e altere port = "8080" para "80"

sudo vi /var/lib/tomcat7/conf/server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2. Edite o arquivo tomcat7 (se o arquivo não for criado, você precisará criá-lo)

sudo vi /etc/default/tomcat7

descomente e altere # AUTHBIND = não para sim

3. Instale o authbind

sudo apt-get install authbind

4. Execute os seguintes comandos para fornecer tomcat7 read + execute na porta 80.

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

5. Reinicie o tomcat:

sudo /etc/init.d/tomcat7 restart
Rosa
fonte
1
Aquele funciona. Pessoal do Linux, pelo menos funciona para mim com o Ubuntu 14.04.2 LTS.
Rodrigo Gurgel
3
A ligação automática é a resposta correta. Mas observe que você pode pular a vinculação automática caso esteja usando 'sudo startup.sh', pois a porta 80 será concedida ao usuário escalado.
Marcio Jasinski
1
Obrigado!! Eu sabia sobre a ativação do authbind na configuração do servidor, mas não sabia que precisava criar um arquivo no authbind para a porta registrada! Eu gostaria que o OP tivesse alterado a solução aceita para esta resposta! (Eu vejo que você estava quase 3 anos de atraso em responder: P)
Fr0zenFyr
1
Funciona com o Tomcat 9 no Lubuntu 18.0.4, sem instalação authbind, apenas adicionando a configuração.
Marco Sulla
107

Em um Linux baseado no Debian (incluindo o Ubuntu), você também precisa /etc/default/tomcat7descomentar a #AUTHBIND=nolinha e definir seu valor como 'yes', para permitir que o servidor se ligue a uma porta privilegiada.

Pioneer Skies
fonte
2
Oi eu não tenho esse arquivo em particular
nmkyuppie
Qual versão do tomcat? Em qual SO você está?
Pioneer Skies
7
Não funciona para o Tomcat se instalado por zip / tar.gz, pois eles não criam o arquivo em / etc / defaults /.
Gorkamorka
9
Esse caminho acima deve ser: / etc / default / tomcat7 (observe a falta de 's' por padrão) #
Tristan Reid
1
Qual é o mesmo para o Tomcat 9?
Kat3
29

Nos sistemas Ubuntu e Debian, são necessárias várias etapas:

  1. No server.xml, altere a linha <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>para ter port="80".

  2. Instale o pacote authbind recomendado (não obrigatório), com um comando como:

    sudo apt-get install authbind

  3. Ative authbind no arquivo server.xml (em um /etc/tomcat6ou em /etc/tomcat7) descomentando e configurando a linha como:

    AUTHBIND=yes

Todas as três etapas são necessárias.

Peter N. Steinmetz
fonte
5
Não funciona para o Tomcat (se instalado por zip / tar.gz) na 13.10.
Gorkamorka
4
Para que ele funcione a partir do zip / tar.gz, execute as etapas 1 e 2 acima, adicione AUTHBIND = yes ao bin / setenv.sh (crie, se não houver) e inicie a partir do raiz. Funciona com o LTS 12.04, também deve funcionar com 13.10.
karl
No meu caso, falhou (com nenhuma mensagem de erro no catalina.out) sem o pacote authbind, trabalhou após instalá-lo
Golimar
Você poderia apontar para a documentação sobre AUTHBIND = yes? Não encontro em lugar nenhum.
ARX20:
Também não consigo encontrar uma menção à configuração AUTHBIND como parte da configuração do elemento do servidor na documentação do TOMCAT. Estranho.
Peter N. Steinmetz
22

Tentei mudar a porta de 8080para 80no server.xmlmas não funcionou para mim. Então eu achei alternativa, atualize o iptablesque eu tenho certeza que há um impacto no desempenho.

Eu uso os seguintes comandos:

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80

Athar
fonte
como reverter isso?
SAI GIRI CHARY AOUSULA
Executar o comando seguinte para remover o encaminhamento: iptables -t nat -D PREROUTING -p tcp dport 80 -j REDIRECIONAR --to-porta 8080
Casol
17

Como as respostas anteriores não funcionaram bem (foi bom, mas não o suficiente) para mim no Ubuntu 14.04 Server, mencionei essas recomendações (esta é uma citação).

Edit: note que, como @ jason-faust mencionou nos comentários, em 14.04, o authbindpacote que o acompanha agora suporta IPv6 agora, portanto, a coisa preferida do IPv4 não é mais necessária .

1) Install authbind
2) Make port 80 available to authbind (you need to be root):

  touch /etc/authbind/byport/80
  chmod 500 /etc/authbind/byport/80
  chown tomcat7 /etc/authbind/byport/80

3) Make IPv4 the default (authbind does not currently support IPv6).
   To do so, create the file TOMCAT/bin/setenv.sh with the following content: 

   CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

4) Change /usr/share/tomcat7/bin/startup.sh

  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
  # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"

Se você já possui um setenv.sharquivo , precisa usar:/usr/share/tomcat7/binCATALINA_OPTS

export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

Agora você pode alterar a porta para 80conforme indicado em outras respostas.

smonff
fonte
2
Gostaria de acrescentar que o arquivo startup.sh está localizada em: /usr/share/tomcat7/bin/startup.sh - Não é completamente óbvio para nós novatos;)
CONMAN
Caminhos atualizados do @ConMan, é uma ótima idéia para salvar outras pesquisas. Admito que conhecer esse lugar não é óbvio no começo.
smonff
1
Obrigado, isso funcionou muito bem, estou acostumado a centos, então isso foi útil para mim, onde isso não foi um problema para mim.
precisa saber é
1
Acabei de segui-lo hoje na 14.04, o pacote authbind que é fornecido com ele agora oferece suporte ao IPv6, então a coisa preferida do IPv4 não é mais necessária.
Jason Faust
Eu também fiz: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils
5

No linux moderno, a melhor abordagem (para mim) é usar o xinetd:

1) crie /etc/xinet.d/tomcat-http

service http
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8080
}

2) crie /etc/xinet.d/tomcat-https

service https
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8443
}

3) chkconfig xinetd em

4) /etc/init.d/xinetd start

cgdave
fonte
Outra abordagem é a compilação e uso jsvc mas xinetd é definitivamente mais fácil
cgdave
5

Se alguém estiver procurando, como alterar o número da porta do tomcat no usuário do Eclipse IDE, a seguir estão as etapas.

1. Na exibição Servidores, clique duas vezes no nome do servidor: insira a descrição da imagem aqui

2. Isso abrirá uma página de configuração para o Tomcat da seguinte maneira: insira a descrição da imagem aqui

3. Observe que os números das portas são mostrados na tabela à direita. Clique para editar, por exemplo: insira a descrição da imagem aqui

4. Isso alterará o número da porta do HTTP de 8080 para 80. Pressione Ctrl + S para salvar a alteração e reiniciar o servidor. Podemos identificar a alteração do número da porta na visualização Console: insira a descrição da imagem aqui

Todo este conteúdo foi retirado do link abaixo. Consulte esse link para obter mais informações, obrigado. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
fonte
4

A execução do comando abaixo funcionou. Tentei mudar server.xmle o arquivo conf, mas ambos não funcionaram.

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Naeem Iqbal
fonte
3

Em um servidor Linux, você pode apenas usar estes comandos para reconfigurar o Tomcat para escutar na porta 80:

sed -i 's|port="8080"|port="80"|g' /etc/tomcat?/server.xml
sed -i 's|#AUTHBIND=no|AUTHBIND=yes|g' /etc/default/tomcat?
service tomcat8 restart
panticz
fonte
2

se você estiver usando o eclipse e a modificação do server.xml não funcionar, tente o artigo a seguir . Eles terão etapas para modificar a porta se você estiver usando o IDE como o eclipse.

user3461044
fonte
1

Apenas vá para a pasta conf do tomcat

abra o arquivo server.xml

Vá para um dos nós do conector que se parece com o seguinte

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

Simplesmente mude a porta

salve e reinicie o tomcat

Ravi Ranjan
fonte
1
Apenas no Windows, não é?
smonff
1

Aqui estão os passos:

-> Siga o caminho: {diretório tomcat> / conf -> Encontre esta linha:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

altere o número da porta de "8080" para "80".

-> Salve o arquivo.

-> Reinicie o servidor :)

Madhusudan
fonte
0

Não esqueça de editar o arquivo. Abrir arquivo /etc/default/tomcat7e alterar

#AUTHBIND=no

para

AUTHBIND=yes

depois reinicie.

Patrikoko
fonte