Nginx:收听8080的proxy_pass,但不是80

时间:2014-12-10 10:27:07

标签: django nginx

我似乎无法使这个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似乎没有将请求转发给我的应用程序。出了什么问题?

2 个答案:

答案 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