0

现在 nginx 在 ngx_http_request_t 中有一个 headers_in 列表,我的要求是对其中一个标头进行一些更改,例如编码,我需要在源代码中执行此操作,这似乎有点像配置中的 proxy_set_header 命令。直接在 table_elt_t 中设置值似乎很粗鲁,有人知道吗?

4

1 回答 1

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;

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

于 2018-08-09T22:16:44.563 回答