30

我可以看到,如果我像这样启动 uwsgi:

sudo /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www --gid www

它创建一个皇帝副本。但如果我--master另外启动它(如这里推荐的那样),它会创建两个皇帝副本。--master使用with有意义--emperor吗?我会说不,但如果我在没有该选项的情况下运行它,我会收到以下警告:

*** WARNING: you are running uWSGI without its master process manager ***

4

3 回答 3

38

这是官方文档所说的:

Emperor 通常不应该使用 --master 运行,除非特别需要高级日志记录等主特性。

如果您想知道master选项的作用,这里是答案:

掌握

uWSGI 内置 prefork+threading 多线程管理模式,通过轻拨主开关激活。对于所有实际的服务部署,不使用主模式并不是一个好主意。

所以,总结一下:

  • 用于--master通常的 uWSGI 实例,
  • 不要--master用于 uWSGI Emperor。
于 2013-04-06T22:44:03.520 回答
3

我不同意 - 文档说无论如何在生产中使用它不是一个好主意;我想双重否定可以写得更清楚。

因此,使用它似乎是一个好主意,因此发出警告。

于 2015-02-23T15:17:50.127 回答
0

我想添加一些关于在皇帝手下运行的附庸使用 harakiri 模式的具体信息。如果 master 不在附庸国的配置中,则无论是否在 Emperor 配置中指定 master/harakiri 都将无效。给定一个示例皇帝配置:

[uwsgi]
emperor = ...
daemonize = ...
emperor-pidfile = ...
vassal-set = enable-metrics=1
emperor-stats = 127.0.0.1:6000

封臣需要以下物品才能使 harakiri 工作:

[uwsgi]
strict
processes = 4
stats = 127.0.0.1:5000
memory-report
daemonize = ...
pidfile = ...
close-on-exec
py-tracebacker = /tmp/tbsocket
master
harakiri = 5
harakiri-verbose

请注意,master 和 harakiri 都存在于 vassal 中,并且在 Emperor 配置中设置它们对 uwsgi 版本 2.0.12 的 vassal 没有影响

于 2017-07-13T14:39:53.803 回答