如何在nginx中编辑请求标头然后发送到后端?

时间:2017-08-25 09:38:55

标签: nginx-reverse-proxy

现在nginx在ngx_http_request_t中有一个列表headers_in,我的要求是做一些更改,例如编码到其中一个标题,我需要在源代码中执行此操作, 它看起来有点像配置中的proxy_set_header命令。 在table_elt_t中直接设置值似乎很粗鲁, 有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

您可以通过向上游请求中添加新标头并包括字符串捕获来修改请求标头。这是一个简单的示例,在User-Agent标头中将Mozilla/5.0替换为Mozilla/6.0

set $ua $http_user_agent;
if ($http_user_agent ~ "^Mozilla/5.0 (.+)$") {
    set $ua "Mozilla/6.0 $1";
}
proxy_set_header User-Agent $us;

虽然,听起来您还想对替换后的标头进行一些程序化转换(您提到“编码”),但我认为这是不可能的。如果通过示例更详细地说明问题,则可能会有不同的解决方案。