Supervisord设置用户:程序组

问题描述 投票:0回答:1

我和Supervisord一起经营着Nginx,Gunicorn。在Supervisord启动后,它创建了gunicorn.sock文件,其中包含用户和组my_user:my_user。我需要Nginx能够连接到套接字文件gunicorn.sock有没有任何正确的方法来设置套接字文件用户和组到my_user:nginx

我试图将此设置设置为[myprogram:program],但它不起作用:

socket_owner=my_user:nginx
chown=my_user:nginx

我的supervisord.conf程序:

[myprogram:program]
command = /var/www/project/virtual_env/bin/gunicorn -k gevent --worker-connections 1001 --bind=unix:gunicorn.sock -m 007 wsgi:application
directory = /var/www/project/
autostart=true
autorestart=unexpected
supervisord
1个回答
0
投票

也许你可以将Gunicorn作为Nginx运行的同一用户运行?然后创建的套接字将具有必要的所有权。当然,这可能需要您调整应用程序目录的权限。

主管有一个user指令,可用于此目的。例如,如果Nginx作为www-data用户运行,则可以使用此Supervisor配置。

[myprogram:program]
command = /var/www/project/virtual_env/bin/gunicorn -k gevent --worker-connections 1001 --bind=unix:gunicorn.sock -m 007 wsgi:application
directory = /var/www/project/
user = www-data
autostart=true
autorestart=unexpected

这会产生以下所有权和权限(生成的组取决于用户帐户的配置)。

# ls -lh gunicorn.sock
srwxrwx--- 1 www-data www-data 0 Dec 24 22:43 gunicorn.sock

与Debian Stretch上的Nginx,Gunicorn和Django相似的东西对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.