我如何将一个非标准的应用程序特定的头从nginx转发到我的应用服务器?

kh212irz  于 2022-12-17  发布在  Nginx
关注(0)|答案(1)|浏览(141)

我无法将特定于应用程序的标头传递给在uWSGI和Flask上运行的应用程序
这是我的nginx.conf文件

proxy_pass http://localhost:5000/;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_set_header X-NginX-Proxy true;
                proxy_pass_request_headers on;
                proxy_set_header $HTTP_Chart-Type $http_chart_type;
        }

这些是我的标题从chrome:

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
chart_type: line

我正在尝试将chart_type标题传递到后端。
谢谢

gab6jxml

gab6jxml1#

proxy_pass_request_headers的默认值是on,所以应该没有必要显式设置它(除非在配置中的某个地方关闭了它,并且这对您的配置有影响)。
使用默认设置(on),Nginx将所有头文件传递到后端,因此您不需要任何特殊配置来传递自定义头文件(假设您的http_chart_type是自定义头文件)。
您在从Nginx向后端传递http_chart_type头文件时遇到的问题可能与Nginx默认不允许头文件名称带有下划线有关。请参见https://stackoverflow.com/a/74798560/3571

相关问题