我正在运行 Nginx、Gunicorn 和 Supervisord。Supervisord 启动后,它会gunicorn.sock使用用户和组创建文件my_user:my_user。我需要 Nginx 才能连接到套接字文件,gunicorn.sock是否有任何正确的方法来设置套接字文件用户和组my_user:nginx?
我尝试将此设置设置为以下内容,[myprogram:program]但它不起作用:
socket_owner=my_user:nginx
chown=my_user:nginx
Run Code Online (Sandbox Code Playgroud)
我的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
Run Code Online (Sandbox Code Playgroud)
小智 6
也许您可以以与 Nginx 运行相同的用户身份运行 Gunicorn?然后创建的套接字将拥有必要的所有权。当然,这可能需要您调整应用程序目录的权限。
Supervisor 有一个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
Run Code Online (Sandbox Code Playgroud)
这会产生以下所有权和权限(生成的组取决于用户帐户的配置)。
# ls -lh gunicorn.sock
srwxrwx--- 1 www-data www-data 0 Dec 24 22:43 gunicorn.sock
Run Code Online (Sandbox Code Playgroud)
类似的东西对我来说适用于 Debian Stretch 上的 Nginx、Gunicorn 和 Django。
| 归档时间: |
|
| 查看次数: |
6273 次 |
| 最近记录: |