Nginx sub_filter 的使用示范

4 min read

假设我们有一个包含文本的 HTML 文件,其中有一些字符串需要替换。

在这个示例中,我们将使用 sub_filter 指令来替换字符串 foo,并将其替换为 bar。我们将在一个虚拟主机中使用以下 nginx 配置:

server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    location / {
        # 开启 sub_filter
        sub_filter on;
        # 替换 foo 为 bar 
        sub_filter 'foo' 'bar';
        sub_filter_types text/html text/css;
        # 发送从后端获得的 HTTP 响应
        proxy_pass http://backend;
    }
}

现在,当客户端请求虚拟主机中的资源时,Nginx 将捕获最终响应,并搜索文本/html 内容以查找匹配的字符串 foo。找到字符串后,它将用 bar 替换该字符串,并将修改后的响应发送回客户端。

请注意,如果没有设置 sub_filter_types,Nginx 将不会尝试搜索任何内容。