Nginx

nginx 上反向代理的多個 sub_filter 規則?

  • June 12, 2020

沒有邪惡的計劃,我試圖在其他域下鏡像一個站點,同時動態更改一些字元串。

我在一個新主機上設置了 nginx 作為主站點的 RP。這允許設置一個替換規則:

sub_filter      Originalstring  'new string';
sub_filter_once off;

但是,我想執行幾條規則,其中sub_filter 每個 location 只允許一個

如果有的話,這裡有什麼解決方案?

現在您可以將 nginx 升級到 1.9.4

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

在此處查看完整的更改日誌:http: //nginx.org/en/CHANGES

與前一個不同,目前版本的 nginx 允許在一個 location 指令下創建多個子過濾規則。像這樣

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;
}

您最多可以添加 255 個過濾器。見http://wiki.nginx.org/HttpSubsModule

通過執行此命令確保您已subs_filter安裝 nginx nginx -V--with-http_sub_module在輸出中尋找。

引用自:https://serverfault.com/questions/281741