<socket>demo.socket</socket>
<processes>4</processes>
<chdir>/root/workspace/DjangoDemo</chdir>
<pythonpath>/root/workspace/DjangoDemo</pythonpath>
<module>DjangoDemo.wsgi</module>
<master />
<enable-threads />
<thunder-lock />
<pidfile>/var/run/django_demo.pid</pidfile>
<daemonize>/var/log/django_demo.log</daemonize>
</uwsgi>
socket:uwsgi监听的socket,可以为socket文件或ip地址+端口号(如0.0.0.0:9000),取决于nginx中upstream的设置
processes:同时启动uwsgi进程的个数,这个进程与nginx中的workers是不一样的,uwsgi中的每个进程每次只能处理一个请求(进程越多可以同时处理的请求越多),nginx采用的异步非阻塞的方式来处理请求的,每个进程可以接受处理多个请求。
chdir:在app加载前切换到当前目录
pythonpath:给PYTHONPATH 增加一个目录(或者一个egg),最多可以使用该选项64次。
module:加载指定的python WSGI模块(模块路径必须在PYTHONPATH里)
master:相当于master=true,启动一个master进程来管理其他进程,以上述配置为例,其中的4个uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程
pidfile:在失去权限前,将master的pid写到当前文件中
daemonize:使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(不会影响nginx日志的输出)
其他问题:
1、open("./python_plugin.so"): No such file or directory [core/utils.c line 3653]
!!! UNABLE to load uWSGI plugin: ./python_plugin.so: cannot open shared object file: No such file or directory !!!
可以将<plugins>python</plugins>去掉,因为使用pip安装后包含了这一环境
2、uwsgi:invalid option -- x
安装libxml2*重新编译安装uwsgi即可。【这个尽量通过pip来安装和卸载,如果是通过源码安装(python uwsgiconfig.py --build),可以尝试python uwsgiconfig.py --clean,然后再通过pip安装】fedora安装pip
参考: