【发布时间】:2020-08-17 10:52:04
【问题描述】:
信息:
Framweork: Django 2.X
服务:监督; uWSGI
主机:CentOS Linux 7
您好,我目前正在测试如何在我的主机上使用 uWSGI 部署多个 django 应用程序。我根据我的主机和 uWsgi 提供的手册设置了所有内容,并且可以正常工作。但是我想进一步定制一切,以便我能更好地理解一切。
据我了解,我的 uWSGI 服务 uwsgi.ini 目前在皇帝模式下工作,并为我的两个名为 baron_app.ini 和 prince_app.ini 的不同应用程序提供了 vassals 来处理我的不同应用程序。
问题
我注意到err.log 对使用多个应用程序进行调试有点令人困惑。
比如……
announcing my loyalty to the Emperor...
Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
[pid: 26852|app: 0|req: 2/2].....
问题:有没有办法给我的封臣起个名字,以便它打印在日志中?或者告诉 uWSGI 在 Log 中设置某种进程和应用程序日志关系(Emperor - Vassals - Worker 等)?
例如,我可以想象这样的事情,在查找错误时可能会更容易。
#baron_app: announcing my loyalty to the Emperor...
#emperor: Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
#prince_app: [pid: 26852|app: 0|req: 2/2].....
我尝试了procname-prefix 和vassal_name 之类的方法,但它似乎不起作用 - 可能是因为我不知道把它放在哪里,在uwsgi.ini 或vassals*.ini 中?
我当前的设置...
...
[program:uwsgi]
command=uwsgi --master -- %(ENV_HOME)s/uwsgi/apps-enabled
autostart=true
autorestart=true
stderr_logfile = ~/uwsgi/err.log
stdout_logfile = ~/uwsgi/out.log
stopsignal=INT
vacuum = 1
...
[uwsgi]
base = /home/kiowa/baron_app/baron_app
chdir = /home/kiowa/baron_app/
static_files = /home/kiowa/baron_app/
http = :8080
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/env_baron
plugin = python
uid = kiowa
gid = kiowa
...
[uwsgi]
base = /home/kiowa/prince_app/baron_app
chdir = /home/kiowa/prince_app/
static_files = /home/kiowa/prince_app/
http = :8000
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/prince_app
plugin = python
uid = kiowa
gid = kiowa
【问题讨论】: