在uWSGI应用程序(烧瓶)中缺少nginx头文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在uWSGI应用程序(烧瓶)中缺少nginx头文件相关的知识,希望对你有一定的参考价值。
我的python应用程序(Flask
)运行在uWSGI
(应用程序服务器)后面,并在nginx
(http服务器)的前面运行,并打包在docker
容器中。我试图实现的是将真实IP地址从http服务器(Nginx
)转发到我的应用服务器(uWSGI
)。
要做,所以我在我的nginx配置中指定X-Real-IP
和X-Forwarded-For
标头。不幸的是,检查烧瓶的request.headers
我只能看到Host
标头,其余两个丢失。
相同的设置适用于gunicorn
,并且我的标题存在。知道怎么解决吗?
server {
listen 80;
server_name app.local;
## uWSGI setup for API
location /api {
include /etc/nginx/uwsgi_params;
uwsgi_pass unix:///var/run/app.uwsgi.sock;
uwsgi_param Host $host;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
答案
我找到了解决方案。我只需要用X-HEADERS
作为HTTP
的前缀。这是一个例子。
# From
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
# To
uwsgi_param HTTP_X-Real-IP $remote_addr;
uwsgi_param HTTP_X-Forwarded-For $proxy_add_x_forwarded_for;
以上是关于在uWSGI应用程序(烧瓶)中缺少nginx头文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Uwsgi 和 Nginx 上使用 SocketIO 烧瓶
将 $ssl_client_s_dn 从 nginx/uwsgi 传递到烧瓶应用程序