启动 gunicorn 时地址无效
Invalid address when startup 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 已经提到,如果您 运行 nginx 在与 gunicorn 不同的主机上,您需要告诉 gunicorn 信任x-forward-* headers 由 nginx 发送。
If you are running Nginx on a different host than Gunicorn you need to
tell Gunicorn to trust the X-Forwarded-* headers sent by Nginx. By
default, Gunicorn will only trust these headers if the connection
comes from localhost. This is to prevent a malicious client from
forging these headers:
gunicorn -w 3 --forwarded-allow-ips="10.170.3.217,10.170.3.220" test:app
我按照上面说的做了,还是一样的错误。并且我把地址改成127.0.0.1和0.0.0.0,它们工作正常,但是不安全,如何配置,请帮助我!
这显然不是你的问题,但令人困惑的是你正在调用你的配置文件"gunicon_wsgi.py"。这不是您的 WSGI 文件。将其命名为 "gunicorn_conf.py" 或类似名称。
然而,您的问题是您误解了绑定到 IP 地址的含义。你不能将你的 gunicorn 服务器绑定到不同机器上的 IP 地址;那根本没有意义。而且不是"insecure"绑定到0.0.0.0.
我在将 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 已经提到,如果您 运行 nginx 在与 gunicorn 不同的主机上,您需要告诉 gunicorn 信任x-forward-* headers 由 nginx 发送。
If you are running Nginx on a different host than Gunicorn you need to tell Gunicorn to trust the X-Forwarded-* headers sent by Nginx. By default, Gunicorn will only trust these headers if the connection comes from localhost. This is to prevent a malicious client from forging these headers:
gunicorn -w 3 --forwarded-allow-ips="10.170.3.217,10.170.3.220" test:app
我按照上面说的做了,还是一样的错误。并且我把地址改成127.0.0.1和0.0.0.0,它们工作正常,但是不安全,如何配置,请帮助我!
这显然不是你的问题,但令人困惑的是你正在调用你的配置文件"gunicon_wsgi.py"。这不是您的 WSGI 文件。将其命名为 "gunicorn_conf.py" 或类似名称。
然而,您的问题是您误解了绑定到 IP 地址的含义。你不能将你的 gunicorn 服务器绑定到不同机器上的 IP 地址;那根本没有意义。而且不是"insecure"绑定到0.0.0.0.