我正在使用uwsgi Emperor管理多个Flask应用程序,对于每个单独的应用程序,我都有几个ini配置,例如我想从中央local.ini
共享production.ini
,default.ini
的共同ini功能。我希望能够对多个项目执行此操作,即不同的项目可以具有不同的默认值。但是,我无法让皇帝跟随符号链接来识别default.ini
文件。我如何让皇帝遵循符号链接,以便每个项目都能了解其default.ini位置?我总是得到错误
realpath() of default.ini failed: No such file or directory
emperor.ini
设置文件
[uwsgi]
emperor = /www/uwsgi/vassals
emperor-broodlord = 40
logto = /www/uwsgi/log/emperor.log
master = true
thunder-lock = true
enable-threads = true
stats = /tmp/empstats.sock
die-on-term = true
我的vassals目录设置有指向相应项目ini文件的符号链接
uwsgi_app1.ini -> /path/to/project1/local.ini
uwsgi_app2.ini -> /path/to/project2/local.ini
对于每个单独的项目,我都有一个default.ini
,其中包含要用于该项目的本地和生产环境的通用设置。
Project1
default.ini
[uwsgi]
file = %(wwwdir)/%(module)/run_%(app_name)
daemonize = %(wwwdir)/%(module)/log/%(app_name).log
socket = %(socketdir)/uwsgi_%(app_name).sock
stats = %(socketdir)/%(module)_stats.sock
master = true
processes = 4
chmod-socket = 666
vacuum = true
thunder-lock = true
enable-threads = true
lazy-apps = true
具有local.ini
和production.ini
,但变量略有不同的是
本地
[uwsgi]
callable = app
wwwdir = /localwww/
socketdir = /tmp
module = app1
app_name = app1
ini = default.ini
生产
[uwsgi]
callable = app
wwwdir = /home/var-www/
socketdir = /run/uwsgi/tmp
module = app1
app_name = app1
ini = default.ini
如果我使用%p
魔术变量指定绝对路径,则它指向皇帝附庸目录www/uwsgi/vassals/default.ini
,而不是真实路径。
答案 0 :(得分:0)
我正在使用项目文件中default.ini的完整路径...
ini = /path/to/my/project/config/uwsgi/defaults.ini