在uWSGI应用程序(烧瓶)中缺少nginx头文件

问题描述 投票:0回答:1

我的python应用程序(Flask)运行在uWSGI(应用程序服务器)后面,并在Nginx(http服务器)的前面运行,并打包在docker容器中。我试图实现的是将真实IP地址从http服务器(Nginx)转发到我的应用服务器(uWSGI)。

要做,所以我在我的nginx配置中指定X-Real-IPX-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;
  }
}
docker nginx flask uwsgi
1个回答
1
投票

我找到了解决方案。我只需要用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;
© www.soinside.com 2019 - 2024. All rights reserved.