Nginx – 四、实用代理之sub_filter

sub_filter支持将返回内容(response body)中的内容进行替换。如返回内容中有跳转地址,比如一些302跳转不是直接通过请求头中的Location,而是由表单自动提交的form,可将返回内容先进行替换,如把http://192.168.1.100更换为https://xyz.test.com,这样就方便地修改代理的跳转地址,不用修改代码。

sub_filter 'http://192.168.1.100' 'https://xyz.test.com';

参考完整实例:

server {
  listen       443 ssl;
  server_name  xyz.test.com;
  ssl_certificate      cert/_test_com.pem;
  ssl_certificate_key  cert/_test_com.key;
  location / {
    proxy_redirect ~^http://192.168.1.100/(.*) https://xyz.test.com/$1;
    proxy_pass http://192.168.1.100/;
    sub_filter 'http://192.168.1.100' 'https://xyz.test.com';
    sub_filter_once off;
  }
}

sub_filter_once on | off。默认: on,只执行一次。sub_filter指令是执行一次,还是重复执行。

不生效处理办法

增加配置:

proxy_set_header Accept-Encoding "";