我的环境:
nginx---(反向代理)---gunicorn;
gunicorn使用supervisor管理;
建议方案二
方案一:将127.0.0.1:8000这个字符串定义成系统变量,读取系统变量
import multiprocessing
import os
bind = os.environ.get('BIND_ADDRESS')
#注意这个BIND_ADDRESS变量不是在/etc/profile、.bash_profile或.bashrc中定义,而是在supervisor中定义,具体定义为: environment=BIND_ADDRESS=127.0.0.1:8000
workers = 8
backlog = 2048
worker_class = "gevent"
worker_connections = 1000
daemon = False
debug = True
proc_name = 'gunicorn'
方案二:使用套接字模式
import multiprocessing
import os
bind = 'unix:/var/run/gunicorn.sock'
workers = 8
backlog = 2048
worker_class = "gevent"
worker_connections = 1000
daemon = False
debug = True
proc_name = 'gunicorn'
nginx中添加如下配置:
【这个放在http下,必须要有这个】
upstream gunicorn {
server unix:/var/run/gunicorn.sock;
}
【这个放在server下】
location / {
include uwsgi_params;
proxy_pass http://gunicorn/api/;
error_page 404 /;
}