使用Nginx反向代理设置查找和替换

时间:2013-07-19 22:25:42

标签: search nginx replace

我在centos 6上使用nginx进行反向代理设置。我希望根据点击的广告取一个页面并显示不同的电话号码。

我试图使用http_sub_module,虽然我并不清楚如何找到替换它。

实施例

http://mysite.com有(111)123-4567

我想让反向代理搜索上面的数字并替换为(222)765-321

谢谢!

1 个答案:

答案 0 :(得分:2)

它并不理想,因为应该重写源代码,但您可以使用sub_filter重写代理请求的响应内容。以您的示例为例:

location /something {
    ...

    sub_filter '(111) 123-4567' '(222) 765-321';
    sub_filter_once off;
}

这个的默认行为是替换一次(我在示例中禁用了)并且仅将更改应用于html页面(这是基于响应的mime类型)。这适用于在反向代理中使用,因为它可以用默认选项替换Location标头,并在禁用sub_filter_once选项时链接。

虽然除非在编译时明确配置,否则此模块不可用,但根据我的经验,任何安装了nginx的软件包管理器都启用了此选项。

您可以阅读有关此here的更多信息。