uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)

2023-02-17 14:48:34 浏览数 (3)

uwsgi 文档

  • https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Configuration.html(中文)
  • https://uwsgi-docs.readthedocs.io/en/latest/Configuration.html(英文)

uwsgi 安装

pip3 install uwsgi

ini 配置方法

在 ini 配置文件里增加一个 home 或 pyhome  或 virtualenv  或 venv 参数 指向 virtualenv 根目录:

代码语言:javascript复制
(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 配置

代码语言:javascript复制
[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

启动 uwsgi_conf.ini

可以加到 /etc/rc.local 开机会自动启动 uwsgi,在 ini 文件里设置 py-auto-reload 代码修改后自动重启 uwsgi,还可以用 Supervisor 设置 守护进程。

/root/.virtualenvs/blog/bin/uwsgi --ini /root/configs/blog_uwsgi.ini

http 和 socket 区别

http                                 add an http router/server on the specified address socket                             bind to the specified UNIX/TCP socket using default protocol

1 人点赞