esta é minha primeira implantação de aplicativo da Web e estou enfrentando todos os tipos de problemas.
Atualmente, estou optando por uma implementação de nginx + gunicorn para o aplicativo Django, mas principalmente essa questão está relacionada às configurações do nginx. Para algum contexto - o nginx receberia conexões e proxy para o servidor local do gunicorn.
nas configurações do nginx, onde diz server_name
que devo fornecer um? 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 escutada.
Meu desejo é que quando eu acessar algo parecido http://xxx.xxx.xxx.xxx:9050
eu consiga acessar o site.
A seguir está o código de exemplo no qual basearei 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;
}
server_name
o padrão é uma string vazia, o que é bom; você pode excluí-lo completamente.Outra abordagem comum para a necessidade de "não quero colocar um nome nisso" é usar
server_name _;
No entanto, sua
http://xxx.xxx.xxx.xxx:9050
URL não funcionará com esta configuração; você está ouvindo apenas na porta 80. Você precisaria adicionar umlisten 9050;
também.nome do servidor _; não é um curinga veja aqui:
http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server
apenas especifique a diretiva default_server para acesso somente ip (consulte http://nginx.org/en/docs/http/request_processing.html )
Se você deseja que seu aplicativo responda na porta 9050 sem um nome de host específico, basta pular server_name, não é necessário, pois o Nginx primeiro resolve a entrada de escuta e, em seguida, server_name, se presente:
Mais detalhes aqui: Nginx server_name e como funciona