假设我有 nginx 反向代理到本地 HTTP 服务器。
如果我想要 /wombat 下的所有内容,我可以使用
location /wombat {
include proxy_params;
proxy_pass http://unix:/home/marnanel/whatever.sock;
}
但是我该如何根据Accept
标头中请求的 MIME 类型告诉 nginx 进行反向代理?
就像是
accept image/* {
include proxy_params;
proxy_pass http://unix:/home/marnanel/whatever.sock;
}
只是不是那样,因为这是我编造的。
答案1
您可以map
根据条件将 Accept 标头值映射到变量(在本例中,我正在检查"application/json"
Accept 标头
map $http_accept $upstream_value {
default "app_upstream";
"application/json" "foo_upstream";
}
进而
proxy_pass http://$upstream_value/;