如何在nginx代理配置中获取后端标头?

如何在nginx代理配置中获取后端标头?,nginx,proxy,reverse-proxy,nginx-reverse-proxy,nginx-config,Nginx,Proxy,Reverse Proxy,Nginx Reverse Proxy,Nginx Config,我将Nginx服务器配置为代理,并希望使用后端发送的自定义头的值在Nginx中执行某些操作 以下是我尝试过但未成功的内容: http { upstream backend { server 123.456.789.10:80; keepalive 50; } map $upstream_http_x_cacheable $iscacheable { default "0"; ~*yes "1"; }

我将Nginx服务器配置为代理,并希望使用后端发送的自定义头的值在Nginx中执行某些操作

以下是我尝试过但未成功的内容:

http {
    upstream backend {
        server 123.456.789.10:80;
        keepalive 50;
    }

    map $upstream_http_x_cacheable $iscacheable {
        default "0";
        ~*yes "1";
    }

    server {
        location / {
            proxy_pass  http://123.456.789.10:80;
            if ($iscacheable = "1") {
                #do something
            }
        }
    }
}

我想从后端
X-Cacheable
头(在本例中为apache)获取结果,如果它有单词
yes
,它会做一些事情。

这是一个非常重要的问题,如果有必要,我会付费获得答案。在头过滤阶段,您可能会得到响应的头,但此时您想做什么?您可以更改响应的标题,甚至更改响应的主体,并记录一些内容。使用OpenResty/Lua,您可以在这个阶段做一些事情,甚至可以使用一些技巧调用外部API。但您不能在早期阶段(重写、访问、内容)更改nginx的行为。这对我来说是一个非常重要的问题,如果有必要,我会付费获得答案。您可能会在header_filter阶段获得响应的标题,但此时您想做什么?您可以更改响应的标题,甚至更改响应的主体,并记录一些内容。使用OpenResty/Lua,您可以在这个阶段做一些事情,甚至可以使用一些技巧调用外部API。但您不能在早期阶段(重写、访问、内容)更改nginx行为。