Gunicorn/Nginx : Como preservar o número da porta na URL do browse?

330 views
Skip to first unread message

Eduardo Basílio

unread,
Dec 12, 2013, 3:23:04 PM12/12/13
to django...@googlegroups.com

Olá turma,


Estou com o seguinte problema:

Tenho um projetox desenvolvido com Django rodando no Servidor de Aplicação Gunicorn via WSGI na porta 127.0.0.1:9011 conforme comando abaixo:

gunicorn -b 127.0.0.1:9011 -w 1 caminho.para.wsgi:application


Tenho o Nginx respondendo como Reverse Proxy e Servidor de Static Files na porta 8011 e redirecionando as requisições para o Gunicorn em 127.0.0.1:9011. Veja a configuração de meu arquivo Nginx em /etc/nginx/sites-available/projetox.conf:


upstream projetox {

# For a TCP configuration:

server 127.0.0.1:9011 fail_timeout=0;

}


server {

listen 8011;

client_max_body_size 4G;

#server_name nome_do_site.com;

# path for static files

location /static {

alias /home/usuario/statics/projetox/staticfiles;

expires 30d;

}


location / {

# checks for static file, if not found proxy to app

try_files $uri @proxy_to_app;

}


location @proxy_to_app {

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_redirect off;

proxy_pass http://projetox;

}


As coisas estão funcionando mas com a seguinte inconveniência: Sempre que o usuário clica em um link da aplicação, o browse perde a porta 8011 do Nginx e o link não funciona.

Ex: Quando acesso com o browse a url http://ip_da_vps:8011 o mesmo acessa a home do projeto desenvolvido MAS quando nesta home clico em um link, ex: /admin, o browse perde o número da porta 8011 e vai para http://ip_da_vps/admin ("Welcome to nginx"). Para acessar o admin eu preciso inserir a url no browse manualmente assim: http://ip_da_vps:8011/admin


Obs: ainda não comprei um domínio. Estou acessando o sistema via ip da vps.


Alguém sabe como resolver isso?

Vinicius Mendes

unread,
Dec 12, 2013, 3:32:16 PM12/12/13
to django...@googlegroups.com
Olá Eduardo.

Seria interessante você colocar o seu settings.py para analisarmos e também o código que está gerando essas URLs se ele for feito por você e não pelo Django. Para isso, sugiro que você use o https://gist.github.com/ .

Atenciosamente,
Vinicius Mendes
Analista de Sistemas


2013/12/12 Eduardo Basílio <eduardoafo...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Tiago

unread,
Dec 12, 2013, 3:34:48 PM12/12/13
to django...@googlegroups.com
Cara, é só fazer o nginx listar na porta 80:

server {

listen 80;

...

}

:)




2013/12/12 Vinicius Mendes <vbme...@gmail.com>

Guilherme Medeiros

unread,
Dec 12, 2013, 3:39:22 PM12/12/13
to django...@googlegroups.com
Talvez ele já tenha outro projeto na porta 80, e esteja quernedo usar esse nessa porta para apresentar uma DEMO para o cliente...

Tiago

unread,
Dec 12, 2013, 3:44:36 PM12/12/13
to django...@googlegroups.com
Com nginx tu pode "rodar" varios "server's" na porta 80.. desde que tu coloque um server_name diferente para cada um.. inclusive seria bom que o eduardo fizesse isso tbm, tipo: 


isso deve resolver.


2013/12/12 Guilherme Medeiros <guicar...@gmail.com>

Tito Gonzales

unread,
Dec 12, 2013, 7:44:47 PM12/12/13
to django...@googlegroups.com
É porta 80
Reply all
Reply to author
Forward
0 new messages