启动gunicorn时的地址无效

时间:2015-03-30 12:10:08

标签: django nginx gunicorn

当绑定gunicorn监听地址到我的nginx服务器时遇到错误,这是事情:

1.gunicorn_wsgi.py

import multiprocessing

bind="192.168.239.145:8080"(my nginx server ip address)

workers = multiprocessing.cpu_count()  2 + 1

2.nginx.conf

http{
     upstream realservers{
       server 192.168.239.146:8080;(my django and gunicorn address)
     }
     servr{
         listen 80;
         server_name example.com
         location / {
              proxy_pass http://realservers
         }
     }
}

当我运行gunicorn -c gunicorn-wsgi.py myproject.wsgi时,会发生错误:

[2015-03-30 04:56:05 -0700] [38656] [INFO] Starting gunicorn 19.3.0
[2015-03-30 04:56:05 -0700] [38656] [ERROR] Invalid address: ('192.168.239.145', 8080)

我注意到 gunicorn 提到如果你在与gunicorn不同的主机上运行nginx,你需要告诉gunicorn信任nginx发送的x-forward- *标头

  

如果您在与Gunicorn不同的主机上运行Nginx,则需要   告诉Gunicorn信任Nginx发送的X-Forwarded- *标题。通过   默认情况下,如果连接,Gunicorn只会信任这些标头   来自localhost。这是为了防止恶意客户端   伪造这些标题:

gunicorn -w 3 --forwarded-allow-ips="10.170.3.217,10.170.3.220" test:app

我按照它的说法,但仍然是同样的错误。我将地址更改为127.0.0.1和0.0.0.0,它们工作正常,但不安全,如何配置,请帮助我!

1 个答案:

答案 0 :(得分:1)

这显然不是你的问题,但是你正在调用你的配置文件“gunicon_wsgi.py”令人困惑。这不是你的WSGI文件。称之为“gunicorn_conf.py”或类似的东西。

然而,您的问题是您误解了绑定到IP地址的含义。您不能将gunicorn服务器绑定到另一台计算机上的IP地址;根本没有意义。绑定到0.0.0.0并不是“不安全”。