Nginx+Python 怎么搞才好
python服务后台运行
由于python程序一般只有单进程,因此要用uwsgi启动多个python进程来同时服务,写代码时就要求所有请求必须是无状态的。
为了保证python程序能一直运行,一般用supervisor来拉起并运行在后台。
supervisor配置这样写:
[program:app]
command = uwsgi
--socket 0.0.0.0:6580
--chdir /app
--module app.wsgi
--processes 8
--master
--uid root
--listen 100
stopsignal=QUIT
autostart=true
autorestart=true
user=root
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/log/debug.log
redirect_stderr=true
nginx转发
要将请求转到python,一般用nginx转发请求到uwsgi,nginx配置文件中server段这样写:
server {
listen 8000;
location / {
uwsgi_pass 127.0.0.1:6580;
include uwsgi_params;
}
}
总结一下:一般的实践是用uwsgi+supervisor启动多个python程序的服务进程,再用nginx转发uwsgi请求到python模块。