esta é minha primeira implantação de aplicativo Web e estou enfrentando todos os tipos de problemas.
Atualmente, estou indo para uma implementação nginx + gunicorn para o aplicativo Django, mas principalmente essa pergunta está relacionada às configurações do nginx. Por algum contexto - o nginx receberia conexões e proxy para o servidor local gunicorn.
nas configurações nginx, onde diz server_name
que tenho que fornecer uma? Não pretendo usar nomes de domínio de nenhum tipo, apenas através do ip externo da minha rede (é estático) e do número da porta a ser ouvida.
Meu desejo é que quando eu acessar algo como http://xxx.xxx.xxx.xxx:9050
eu possa acessar o site.
A seguir, é apresentado o código de exemplo no qual basearemos as configurações para referência.
server {
listen 80;
server_name WHAT TO PUT HERE?;
root /path/to/test/hello;
location /media/ {
# if asset versioning is used
if ($query_string) {
expires max;
}
}
location /admin/media/ {
# this changes depending on your python version
root /path/to/test/lib/python2.6/site-packages/django/contrib;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000/;
}
# what to serve if upstream is not available or crashes
error_page 500 502 503 504 /media/50x.html;
}
nome do servidor _; não é um curinga, veja aqui:
http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server
basta especificar a diretiva default_server para acesso somente por IP (consulte http://nginx.org/en/docs/http/request_processing.html )
fonte
server_name _;
correspondência não é compatível.Se você deseja que seu aplicativo responda na porta 9050 sem nome de host específico, basta pular server_name, não é necessário, pois o Nginx resolve primeiro a entrada de escuta e, em seguida, server_name, se presente:
Mais detalhes aqui: Nginx server_name e como funciona
fonte