nginx sub_filter 使用

发布于:2024-09-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

说明: sub_filter 用于替换响应内容中字符串的指令,它主要用于反向代理和修改响应内容

sub_filter 是 ngx_http_sub_module 模块提供的功能,需要确保该模块被编译进 NGINX。

使用样例:

       location /ddd/decision {
            proxy_http_version 1.1;
            proxy_set_header Accept-Encoding "";
            proxy_pass http://192.168.1.166:8080/webroot/decision;
            proxy_redirect /webroot/decision /ddd/decision;
            proxy_set_header X-Forwarded-Proto https;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout    30;
            proxy_read_timeout       600;
            proxy_send_timeout       600;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $http_connection;
            sub_filter "/webroot/decision" "/ddd/decision";
            sub_filter "/webroot/" "/ddd/";
            sub_filter "/webroot/decision/resources" "/ddd/decision/resources";
            sub_filter_once off;
            sub_filter_types application/json application/javascript text/css image/png image/jpeg image/svg+xml;

       }

字段说明:

        

   两个关键配置:
    proxy_redirect /webroot/decision /ddd/decision;
   这个是修改302请求的路径变更的

    sub_filter "/webroot/decision" "/ddd/decision";
    这个是对返回的资源路径进行替换的

    sub_filter_once off;  这个是不限替换次数

    sub_filter_types  这个是根据mime.type 指定替换url资源的类型,可以指定一环某些资源

缺点:

   这个方法能成功,但是解决不了一个问题,就是js或者css里引用变量作为路径,类似于:.map-data-import-icon .x-icon {
  display: block;
  background: url('${fineServletURL}/resources?path=/com/fr/web/resources/dist/images/2x/data_import.png') no-repeat center center;
  background-size: contain;
}

解决方式: 可以将变量引用的静态文件,可以缓存到nginx本地。统一读取nginx路径下的文件。后续更新同步更新nginx路径下的文件。


网站公告

今日签到

点亮在社区的每一天
去签到