如何在nginx代理配置中获取后端标头?
我将Nginx服务器配置为代理,并希望使用后端发送的自定义头的值在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"; }
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行为。