首页 > 解决方案 > 稍后的 proxy_set_header 是否会覆盖同一位置块中的较早的 proxy_set_header?

问题描述

我找不到任何明确说明后续 nginxproxy_set_header指令是否会覆盖同一块中的早期指令的文档。

正如您在下面看到的那样,我proxy_set_header Connection some_value在单个位置块中有 3 个指令(因为每个包含的片段文件中都有 1 个,然后有一个覆盖这些指令)。

我认为这是可行的,但我最近看到一些错误表明它不是(与问题无关)。

这是我的配置中的 nginx 位置块(和前面的定义$connection_upgrade):

map $http_upgrade $connection_upgrade
{
    default upgrade;
    '' close;
}
location ~ /api/v[0-9]+/(users/)?websocket$
{
    proxy_pass http://mattermost_upstream;
    include snippets/proxy_websocket_params.conf;
    include snippets/proxy_params.conf;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header Connection "upgrade";

    client_max_body_size 50M;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_buffers 256 16k;
    proxy_buffer_size 16k;
    proxy_read_timeout 600s;
}

snippets/proxy_websocket_params.conf

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache_bypass $http_upgrade;

snippets/proxy_params.conf

proxy_redirect     off;
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;
proxy_set_header   Host               $http_host;
proxy_set_header   X-NginX-Proxy      true;
proxy_set_header   Connection         "";

标签: nginxreverse-proxy

解决方案


推荐阅读