server {
        listen       80;
        server_name  mikecrm.xianzhixiong.com;

        # 上传文件大小限制
        client_max_body_size 20M;
        # 设置为on表示启动高效传输文件的模式
        sendfile on;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass   http://mikecrm.com;
            proxy_set_header Host mikecrm.com;
            proxy_set_header Referer http://mikecrm.com;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            #proxy_request_buffering off;
            proxy_set_header Accept-Encoding "";
            sub_filter_types *;
            sub_filter_once off;
            #sub_filter_last_modified on;
            sub_filter 'cdnq2.mikecrm.com' 'mikecrm.xianzhixiong.com';
            sub_filter 'cdnq3.mikecrm.com' 'mikecrm.xianzhixiong.com';
            sub_filter 'https://cdnq2plt.mikecrm.com' 'http://mikecrm.xianzhixiong.com';
            sub_filter 'https://cdnq3plt.mikecrm.com' 'http://mikecrm.xianzhixiong.com';
            sub_filter 'http://dlcn.mikecrm.com' '';
            sub_filter 'http://mikecrm.com' '';
            sub_filter 'https://mikecrm.com' '';
            sub_filter 'www.mikecrm.com' 'mikecrm.xianzhixiong.com';
            #sub_filter '.mikecrm.com' 'mikecrm.xianzhixiong.com';
            #sub_filter 'mikecrm.com' 'mikecrm.xianzhixiong.com';
        }
        #location ~ \.php$ {
           # proxy_pass   https://real.mikecrm.com;
        #}
        #location ~ /plt.js$ {
           # proxy_pass   https://cdnq3plt.mikecrm.com;
        #}

}

参数解释

注意只有在新版本nginx中才支持多sub_filter.

proxy_set_header Accept-Encoding "";  

设置这个得原因是:告诉后端不要进行gzip压缩.  如果是gzip压缩流, 那么我们就没法进行替换了.

sub_filter_types *;  

对所有请求响应类型都做sub_filter指定的替换.

sub_filter_once off;

sub_filter会执行多次而不是一次. 效果类似于java中的string.replaceAll而不是replace.

sub_filter 'str1'  'str2';

替换字符串,str1是搜索的字符串,str2是最终被替换成的字符串

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐