pip3 install uwsgi
在 ini 配置文件里增加一个 home 或 pyhome 或 virtualenv 或 venv 参数 指向 virtualenv 根目录:
(blog) [root@VM_2_29_centos ~]# uwsgi --help | grep virtualenv
Usage: /root/.virtualenvs/blog/bin/uwsgi [options...]
-H|--home set PYTHONHOME/virtualenv
-H|--virtualenv set PYTHONHOME/virtualenv
-H|--venv set PYTHONHOME/virtualenv
-H|--pyhome set PYTHONHOME/virtualenv
uwsgi_conf.ini 配置
[uwsgi]
# 监听端口
socket = 127.0.0.1:9090
#socket = 127.0.0.1:3031
# 运行状态
#stats = 127.0.0.1:9191
# 工作路径
chdir = /root/yzq/djangos/blog
# django wsgi 路径
wsgi-file = /root/yzq/djangos/blog/joyoo/wsgi.py
# module = Joyo.settings
# python 虚拟环境路径
virtualenv = /root/.virtualenvs/joyoo
# uwsig pid 号
pidfile = /root/yzq/running/uwsgi_joyoo.pid
# 重启的时候使用的 pid 号
touch-reload = /root/yzq/running/uwsgi_joyoo.pid
# post 请求超过 字节 就缓存值磁盘
post-buffering = 8192
# 缓冲区大小
buffer-size = 32768
# 设置进程 processes 和 workers 一样的意思
# processes = 2
workers = 2
# 每个进场下面的线程数
threads = 4
# 日志文件
daemonize = /root/yzq/logs/uwsgi_joyoo.log
# 设置平滑启动 (处理完接受到的请求) 的等待时间(秒)
reload-mercy = 10
# 设置工作进程使用虚拟内存超过 MB 就回收重启
reload-on-as = 1024
# python 文件修改后自动重启
py-autoreload = 1
# 设置一个请求超时(秒),就丢弃掉
harakiri = 60
# 当一个请求被 harakiri 掉,输出一条日志
harakiri-verbose = true
可以加到 /etc/rc.local 开机会自动启动 uwsgi,在 ini 文件里设置 py-auto-reload 代码修改后自动重启 uwsgi,还可以用 Supervisor 设置 守护进程。
/root/.virtualenvs/blog/bin/uwsgi --ini /root/configs/blog_uwsgi.ini
http add an http router/server on the specified address
socket bind to the specified UNIX/TCP socket using default protocol