我正在测试Gunicorn作为uWSGI的替代方案。在Gunicorn实例前面设置了一个Nginx反向代理。不使用uWSGI的结果是,我不得不使用Nginx的proxy_pass
而不是uwsgi_pass
。使用uwsgi_pass
,我可以使用uwsgi_param
来覆盖PATH_INFO
和SCRIPT_NAME
WSGI变量。proxy_pass
没有等效指令。如何为符合WSGI的应用程序服务器(如Gunicorn(的proxy_pass
设置这些WSGI变量?
Gunicorn文档建议您可以通过HTTP标头指定SCRIPT_NAME
,而无需任何进一步的解释。对源代码的深入研究表明,它接受了一个非标准的头,实际上名为SCRIPT_NAME
。以下可用于设置Gunicorn的SCRIPT_NAME
:
proxy_set_header SCRIPT_NAME /myapp;
无法设置PATH_INFO
。然而,在我的情况下,不需要为Gunicorn设置PATH_INFO
,因为它会自动从PATH_INFO
中删除SCRIPT_NAME
前缀。使用uWSGI时,我不得不重写PATH_INFO
以去掉SCRIPT_NAME
前缀。