Flask nginx 代理修复重复 headers

Flask nginx proxy fix duplicates headers

我有一个部署了 nginx 和 gunicorn 的烧瓶服务器。我阅读了 this 并设置了 nginx 来设置这些 headers 并修复了 werkzeug 中间件代理。现在进入 flask 的 headers 有正确的 ip 地址和主机和东西。除了 1 个小问题。 headers 显示为以逗号分隔的重复项。这是我在打印 request.headers.

时看到的内容
Host: site.com,site.com
X-Real-Ip: 12.345.67.898,12.345.67.898
X-Forwarded-For: 12.345.67.898,12.345.67.898
X-Forwarded-Proto: https,https

这些 headers 是 nginx 覆盖的。为什么他们都重复。它们重复并以逗号分隔。我该如何解决这个问题? 我有 nginx 配置和 werkzeug 中间件代理修复完全在示例中完成。 这是我的 nginx 配置或多或少。

server {
    # dont worry about ssl, certbot handles that
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name site.com www.site.com;
    
    location / {
        include proxy_params;
        proxy_pass http://unix:/path/to/site.sock;
        proxy_redirect off;
        
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Richard Smith 解决了这个问题。那就是 include proxy_params; 行。我 cat /etc/nginc/proxy_params 并且它包含了已经包含的确切 proxy_set_header 行。基本上它设置了那些 headers 两次。我必须删除 include proxy_params 行或删除手动 proxy_set_header 行。