如何解决Nginx和Gunicorn WSGI变量
我正在测试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 documentation建议您可以通过HTTP标头指定SCRIPT_NAME
,而无需进一步说明。深入研究源代码后发现,该代码接受了一个实际上名为SCRIPT_NAME
的非标准标头。以下内容可用于为Gunicorn设置SCRIPT_NAME
:
proxy_set_header SCRIPT_NAME /myapp;
PATH_INFO
无法设置。但是,在我的情况下,无需为Gunicorn设置PATH_INFO
,因为它会自动从SCRIPT_NAME
中剥离PATH_INFO
前缀。使用uWSGI,我不得不覆盖PATH_INFO
来剥离SCRIPT_NAME
前缀。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。