这是我的第一个Web应用程序部署,并遇到各种各样的问题.
我目前正在为Django应用程序进行Nginx gunicorn实现,但大多数问题与Nginx配置有关.对于某些上下文 – Nginx将接收与gunicorn本地服务器的连接和代理.
在Nginx配置中,它说server_name我必须提供一个吗?我不打算使用任何类型的域名,只需通过我的网络的外部IP(它是静态的)和要收听的端口号.
我的愿望是,当我访问类似http://xxx.xxx.xxx.xxx:9050的内容时,我将能够访问该网站.
以下是我将基于配置进行参考的示例代码.
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默认为空字符串,这很好;你可以完全排除它.
“我不想为此命名”的另一种常见方法是使用server_name _;
但是,您的http://xxx.xxx.xxx.xxx:9050 URL不适用于此配置;你只是在端口80上听.你需要添加一个listen 9050;同样.