由于支持多进程池,我目前正在将基于金字塔WSGI的应用程序从Waitress web服务器转移到Gunicorn web服务器。
当前,应用程序的服务是:
from waitress import serve
serve(app,
host='127.0.0.1',
trusted_proxy="127.0.0.1",
threads=32,
port=port,
trusted_proxy_headers="forwarded",
url_scheme=scheme, # HTTPS
url_prefix='/api')
现在,我想用Gunicorn提供相同的应用程序。我设法在Gunicorn上找到所有匹配的选项,但不是url_prefix
。设置应用程序URL前缀(我认为这有时也称为应用程序根)的Gunicorn等效是什么?
可以在Gunicorn中使用SCRIPT_NAME环境变量来配置WSGI应用程序的根。
下面是一个例子:
# name is for Datadog agent
# bind matches one in Caddyfile config
# give enough worker processes, threads will have GIL issues
# use SCRIPT_NAME to prefix our API
gunicorn --name backend --bind 127.0.0.1:3456 --workers 8 --threads 2 "backend.server.server:gunicorn_entry_point()" --env "SCRIPT_NAME=/api"
参见相关的Caddfyfile。