Esta es mi primera implementación de aplicaciones web y me encuentro con todo tipo de problemas.
Actualmente estoy buscando una implementación nginx + gunicorn para la aplicación Django, pero principalmente esta pregunta se relaciona con las configuraciones nginx. Para algún contexto, nginx recibiría conexiones y proxy para el servidor local gunicorn.
en las configuraciones nginx, donde dice server_name
¿tengo que proporcionar una? No planeo usar nombres de dominio de ningún tipo, solo a través de la IP externa de mi red (es estática) y el número de puerto para escuchar.
Mi deseo es que cuando accedo a algo así http://xxx.xxx.xxx.xxx:9050
pueda obtener el sitio.
El siguiente es el código de muestra en el que basaré las configuraciones como referencia.
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;
}
nombre del servidor _; no es un comodín ver aquí:
http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server
solo especifique la directiva default_server para el acceso de solo IP (consulte http://nginx.org/en/docs/http/request_processing.html )
fuente
server_name _;
no coincide.Si desea que su aplicación responda en el puerto 9050 sin un nombre de host específico, puede omitir server_name, no es necesario ya que Nginx primero resuelve la entrada de escucha y luego server_name si está presente:
Más detalles aquí: Nginx server_name y cómo funciona
fuente