我们刚刚遇到一个问题,无法让nginx服务器重写他得到的响应内容。
location "^/path(.*)$" {
resolver 8.8.8.8;
set $proxy_target_host "Correct Url is here";
proxy_set_header Host $proxy_target_host;
proxy_pass "Correct Url is here";
proxy_set_header Accept-Encoding "";
sub_filter_once off;
sub_filter_types *;
sub_filter "https://Correct Url is here too/" "/";
}
我们有一个等价的部分,在其中我们使用了子过滤器。它在那里起作用。除了sub_filter,整个位置都运行良好。我们要重写的部分等于我们在sub_filter部分中定义的第一个字符串。我们的NGINX Dockerimage(dockercompose.yaml(也实现了http_sub_module。
有没有什么特殊情况下模块无法工作?我觉得我有点缺乏一些更深层次的知识,因为我是新来的Nginx。
提前感谢!
我在使用具有表单操作属性的sub_filter
时遇到了同样的问题。我改为使用subs_filter
,现在它可以工作了。你可以在这里找到关于nginx替换模块的信息。唯一的小缺点是它没有随nginx一起提供,所以您需要使用--add模块标志重新编译nginx,但这些指令包含在链接中。