我似乎无法使这个nginx配置在端口80上运行。我尝试使用nginx和gunicorn部署django应用程序。我使用以下命令来运行gunicorn:
gunicorn myproj.wsgi:application --bind=127.0.0.1:8001 --workers=9
以下是nginx配置文件/etc/nginx/sites-enabled/myproj
:
server {
listen 8080;
location / {
proxy_pass http://127.0.0.1:8001;
}
location /static/ {
root /webapps/myproj/;
}
}
一切正常,但我必须在本地输入http://localhost:8080/
或http://xxx.xxx.xxx:8080/
才能使应用程序正常运行。如果没有端口号8080,则无法找到该页面。
但是,如果我将listen 8080;
更改为配置文件listen 80;
中的myproj
并在本地或http://localhost/
远程输入http://xxx.xxx.xxx/
,则仅限页面显示来自nginx的欢迎消息。 Nginx似乎没有将请求转发给我的应用程序。出了什么问题?
答案 0 :(得分:2)
您需要指定要绑定的域或IP。
listen XXX.XXX.XXX:80;
答案 1 :(得分:0)
可能是因为存在listen 80;
的其他服务器。
您可以删除其他服务器防御。或者将listen 80;
更改为listen 80 default_server;
。或者使用server_name
指令进行基于名称的处理。
阅读本文,了解nginx如何决定应该处理请求的服务器:http://nginx.org/en/docs/http/request_processing.html