
Tenho um projeto Django que estava funcionando em um servidor de desenvolvimento e estou tentando movê-lo para um servidor de produção Ubuntu. Comecei, com aparente sucesso, um "python manage.py run_gunicorn 0.0.0.0:8000", mas minhas tentativas de conectar-me a ele por meio de um navegador normal apontaram parahttp://JonathansCorner.com:8000/estão expirando. (Quando executo manualmente "telnet localhost 8000" e forneço uma solicitação GET, ele imprime o HTML apropriado.) O UFW está desabilitado.
O que posso fazer para disponibilizar o Gunicorn na porta 80 de fora?
Responder1
Tenho três coisas para você considerar:
Primeiro, em relação ao seu firewall, parece que vocêfazertem algum tipo de firewall ativado, pois a porta 8000 está "filtrada":
~ nmap jonathanscorner.com -p 8000
Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-14 09:53 CST
Nmap scan report for jonathanscorner.com (54.218.143.2)
Host is up (0.10s latency).
rDNS record for 54.218.143.2: ec2-54-218-143-2.us-west-2.compute.amazonaws.com
PORT STATE SERVICE
8000/tcp filtered http-alt
Em segundo lugar, parece que está rodando no EC2? Sendo esse o caso, você precisará modificar seu grupo de segurança para permitir esse tráfego.
Terceiro, normalmente não é uma boa ideia expor diretamente o gunicórnio. Faça com que o gunicorn ouça localhost:8000
(como você está) e, em seguida, use um servidor web adequado para fazer proxy de solicitações para o gunicorn.
Por exemplo, instale o nginx e tenhaistoouça na porta 80 e, em seguida, faça solicitações de proxy para o gunicorn em localhost:8000
.