我使用以 Emperor 模式运行的 uwsgi 在一台服务器上为多个 Django 应用程序提供服务。因此,对于每个项目,我都有一个自己的配置文件,如下所示:
<uwsgi>
<master>true</master>
<processes>1</processes>
<vaccum>true</vaccum>
<chmod-socket>666</chmod-socket>
<socket>/tmp/%n.sock</socket>
<uid>www-data</uid>
<gid>www-data</gid>
<pythonpath>%d../%n</pythonpath>
<module>%n</module>
</uwsgi>
一切工作正常,唯一让我担心或者不完全理解的是,当我使用“uwsgi --emperor /home/user/apps/vassals/”运行 uwsgi 时,我收到警告消息“* 警告:你正在以 root 身份运行 uWSGI !!! (使用 --uid 标志) *“。
我可以忽略该消息吗?或者这是否意味着 uwsgi 没有考虑项目配置文件中的 uid gid 设置?
非常感谢。Mario
答案1
您可以忽略它,但是,为了最佳实践,您应该指定运行用户。
uwsgi --emperor /path/to/vassels/* --uid www-data --gid www-data
它抱怨 Emperor 进程以 root 身份运行。现在,虽然这不会处理任何请求,但这可能是一个潜在的问题。每个 vasssels 都将具有您指定的配置。
如果可能的话,始终建议单独运行一个进程。
答案2
只要您以 root 身份运行 uWSGI,uWSGI 就会发出警告。无论使用情况如何(以 root 身份运行 Emperor 以允许 vassal 映射到不同的 uid 是完全没问题的),您都会收到警告。用户在运行 root 进程时必须小心谨慎。