【发布时间】:2013-07-19 22:25:41
【问题描述】:
我在 centos 6 上使用 nginx 设置了反向代理。我希望获取我的一个页面并根据点击的广告显示不同的电话号码。
我试图使用 http_sub_module 虽然我并不清楚如何找到替换它。
例子
http://mysite.com 有 (111) 123-4567
我想让反向代理搜索上述号码并替换为 (222) 765-321
谢谢!
【问题讨论】:
我在 centos 6 上使用 nginx 设置了反向代理。我希望获取我的一个页面并根据点击的广告显示不同的电话号码。
我试图使用 http_sub_module 虽然我并不清楚如何找到替换它。
例子
http://mysite.com 有 (111) 123-4567
我想让反向代理搜索上述号码并替换为 (222) 765-321
谢谢!
【问题讨论】:
这并不理想,因为确实应该重写源,但是您可以使用sub_filter 重写代理请求的响应内容。以您的示例为例:
location /something {
...
sub_filter '(111) 123-4567' '(222) 765-321';
sub_filter_once off;
}
它的默认行为是替换一次(我在示例中禁用了)并且仅将更改应用到 html 页面(这基于响应的 mime 类型)。这适合在反向代理中使用,因为它可以用默认选项替换 Location 标头,并在禁用 sub_filter_once 选项时链接。
虽然除非在编译时明确配置,否则此模块不可用,但根据我的经验,安装了 nginx 的任何包管理器都启用了此选项。
您可以阅读有关此here 的更多信息。
【讨论】: