gpt4 book ai didi

gunicorn - 如何在没有 WSGI 的情况下为 Gunicorn 配置 ExecStart?

转载 作者:行者123 更新时间:2023-12-02 02:59:13 28 4
gpt4 key购买 nike

Systemd 和 Gunicorn 需要某种 wsgi 文件作为 ExecStart 的最后一个参数:http://docs.gunicorn.org/en/latest/deploy.html?highlight=ExecStart#systemd

对于 Django,这在主模块中作为 wsgi.py:

ExecStart=/home/admin/django/bin/gunicorn --config /home/admin/src/gunicorn.py --bind unix:/tmp/api.sock myapp.wsgi

但是这个文件在使用Sanic和uvloop时显然是不存在的(我相信新的协议(protocol)叫做ASGI)。我尝试将其替换为 app.py ,这不出所料:

ExecStart=/home/admin/sanic/bin/gunicorn --config /home/admin/src/gunicorn.py --bind unix:/tmp/api.sock myapp.app

使用Sanic时该参数应该如何配置?

最佳答案

如果你想用 systemd 启动 sanic,你为什么不使用 supervisrod: Supervisord .

启动 -> Systemd -> supervisord -> gunicorn -> sanic

[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file

[supervisord]
logfile=/var/log/supervisord/supervisord.log ; supervisord log file
logfile_maxbytes=50MB ; maximum size of logfile before rotation
logfile_backups=10 ; number of backed up logfiles
loglevel=error ; info, debug, warn, trace
pidfile=/var/run/supervisord.pid ; pidfile location
nodaemon=false ; run supervisord as a daemon
minfds=1024 ; number of startup file descriptors
minprocs=200 ; number of process descriptors
user=root ; default user
childlogdir=/var/log/supervisord/ ; where child log files will live

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket

[program:ctrlapi]
directory=/home/ubuntu/api
command=/home/ubuntu/api/venv3/bin/gunicorn api:app --bind 0.0.0.0:8000 --worker-class sanic.worker.GunicornWorker -w 2
stderr_logfile = log/api_stderr.log
stdout_logfile = log/api_stdout.log

关于gunicorn - 如何在没有 WSGI 的情况下为 Gunicorn 配置 ExecStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47362448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com