nginx上的一个反向代理的多个sub_filter规则?

没有邪恶的计划,我试图在其他领域镜像一个网站,而在飞行中更改一些string。

我在一个新的主机上设置了nginx作为主站点的RP。 这允许设置一个replace规则:

sub_filter Originalstring 'new string'; sub_filter_once off; 

不过,我想有几个规则运行,哪个sub_filter只允许每个位置一个 。

这里有什么可以解决的办法?

现在你可以将nginx升级到1.9.4

 *) Feature: multiple "sub_filter" directives can be used simultaneously. 

看到完整的更改日志在这里: http : //nginx.org/en/CHANGES

与前一版本不同的是,当前版本的nginx允许在一个位置指令下创build多个子filter规则。 像这样

 location / { resolver 8.8.8.8; proxy_pass http://original-domain.com; proxy_set_header Accept-Encoding ""; proxy_set_header Host original-domain.com; subs_filter_types text/css text/xml text/css; subs_filter a.original-domain.com b.mydomain.com; subs_filter http://$host https://$host; } 

您可以根据需要添加任意数量的filter。 请参阅http://wiki.nginx.org/HttpSubsModule

通过运行这个命令nginx -V确保你已经用nginx安装了subs_filter 。 在输出中查找--with-http_sub_module

检查HttpSubsModule模块。 文件摘录:

可以指定每个位置的几个replace规则

我想你可能会设置几个位置或server_names与每个sub_filter一个sub_filter并通过他们代理请求。