我正在使用django,uwsgi和nginx。 我已经尝试nginx和django文件来提供静态文件。 我的conf文件是:
http { upstream django { server 127.0.0.1:8000; } server { listen 80; server_name 192.xx.xx.x; root /path/to/project/; location /static/ { alias /path/to/static/; } location / { include /etc/nginx/uwsgi_params; uwsgi_pass django; uwsgi_param Host $host; uwsgi_param X-Real-IP $remote_addr; uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for; uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto; } } }
我的configuration文件是真的吗? 我可以在server_name部分使用IP地址吗? (IP地址是我的机器IP)
根据https://nginx.org/en/docs/http/ngx_http_core_module.html#server :
基于IP(基于IP地址)和基于名称(基于“主机”请求头字段)的虚拟服务器之间没有明确的分离。 相反,listen指令描述应接受服务器连接的所有地址和端口,server_name指令列出所有服务器名称。
有关nginx进程请求的概述可以在https://nginx.org/en/docs/http/request_processing.htmlfind,可以在这里find服务静态内容的概述: https : //www.nginx.com / resources / admin-guide / serving-static-content / 。
我的configuration中没有任何东西可以阻止事情的发生 – 你testing了你的configuration并遇到任何问题吗?
是的,您可以将服务器名称更改为机器IP地址以便为django应用程序提供服务,额外的工作是您必须将主机variables作为IP地址分配给应用程序的settings.py文件。