我正在尝试测试一个nginx连接到运行在ubuntu服务器上的supervisord控制的uwsgi服务应用程序的试点系统。应用程序是用python编写的,但是我不确定这是否相关。为了测试系统,我用flask创建了一个简单的hello世界。我希望nginx和uwsgi都能作为www-数据用户运行。
如果我从根shell“手动”启动uwsgi,我可以看到uwsgi进程作为适当的用户运行(www-data)。尽管,如果我让supervisor启动应用程序,会发生一些奇怪的事情-- uwsgi进程在我的用户(friendzis)下运行。因此,套接字文件在错误的用户下创建,nginx无法与我的应用程序通信。
注意:在Windows 2008下,linux服务器以Hyper-V VM的形式运行。
相关组合:
[uwsgi]
socket = /var/www/sockets/cowsay.sock
chmod-socket = 666
abstract-socket = false
master = true
workers = 2
uid = www-data
gid = www-data
chdir = /var/www/cowsay/cowsay
pp = /var/www/cowsay/cowsay
pyhome = /var/www/cowsay
module = cowsay
callable = app主管
[program:cowsay]
command = /var/www/cowsay/bin/uwsgi -s /var/www/sockets/cowsay.sock -w cowsay:app
directory = /var/www/cowsay/cowsay
user = www-data
autostart = true
autorestart = true
stdout_logfile = /var/www/cowsay/log/supervisor.log
redirect_stderr = true
stopsignal = QUIT我肯定我漏掉了一些小细节,但我没注意到。如有任何建议,我将不胜感激。
发布于 2015-11-24 14:36:41
您应该在程序部分中指定一个environment选项。例如:
user=chrism
environment=HOME="/home/chrism",USER="chrism"详情请参见子过程环境。
此外,在堆栈过流上也提出了类似的解决方案。
发布于 2013-10-21 15:42:28
你的跑步是如何监督的?您确定没有从shell (使用uid)运行它吗?
你确定你需要监督吗?您可以很容易地将uWSGI附加到新启动或系统(最终与uWSGI皇帝一起)
https://serverfault.com/questions/547563
复制相似问题