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
# 监听端口 - http, 可以直接访问
# http = :10000
# 运行状态
#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
# 未使用 systemd 时日志文件,会一直保持在后台,使用 docker 应该使用 logto
# daemonize = /root/yzq/logs/uwsgi_joyoo.log
# 使用 systemd、docker 等时的 日志文件
logto = /root/yzq/logs/uwsgi_joyoo.log
# 设置平滑启动 (处理完接受到的请求) 的等待时间(秒)
reload-mercy = 10
# 设置工作进程使用虚拟内存超过 MB 就回收重启
reload-on-as = 1024
# python 文件修改后自动重启
py-autoreload = 1
# 设置一个请求超时(秒),就丢弃掉
harakiri = 60
# 当一个请求被 harakiri 掉,输出一条日志
harakiri-verbose = true
# 静态文件 uwsgi 自己处理(推荐使用 nginx)
static-map = /static=/root/django/static_root
可以加到 /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