Nginx sub_filter 来修改html响应内容

本文介绍了如何编译安装Nginx并启用http_sub_module和http_ssl_module,然后通过修改配置文件,在HTML响应中动态添加自定义的JavaScript代码,实现客户端页面的增强。
摘要由CSDN通过智能技术生成

首先,我们需要确保Nginx已经正确编译和安装,并且已启用了http_sub_modulehttp_ssl_module模块。您可以按照以下步骤进行操作:

  1. 下载和解压Nginx源代码,并进入解压后的目录。

    wget https://nginx.org/download/nginx-1.23.0.tar.gz
    
  2. 执行以下命令来编译和安装Nginx:

    ./configure --prefix=/user/local/nginx --with-http_sub_module --with-http_ssl_module
    make
    sudo make install
    

    这将编译并安装Nginx,并启用了http_sub_modulehttp_ssl_module

  3. 安装完成后,您可以执行以下命令来验证Nginx是否正确启用了http_sub_module

    /user/local/nginx/sbin/nginx -V
    

    在输出中,您应该能够看到--with-http_sub_module的信息。

    9ab96d008709fcef9261effd2d11447.png

接下来,我们将修改Nginx的配置文件,以在HTML响应中添加自定义的JavaScript代码。请按照以下步骤进行操作:

  1. 打开Nginx的配置文件。默认情况下,该文件位于/user/local/nginx/conf/nginx.conf

  2. 在适当的位置,添加以下配置块:

    server {
        listen 9999;
        location / {
            sub_filter '</body>' '<script>console.log("hello from Judith")</script></body>';
            sub_filter_once off;
            root html;
            index index.html;
        }
    }
    

    这将在所有请求的路径下应用sub_filter指令,并将</body>替换为<script>console.log("hello from Judith")</script></body>

    请注意,listen指令可以根据您的需求进行修改,以适应您的实际情况。

  3. 保存并关闭Nginx的配置文件。

  4. 检查配置文件是否有语法错误:

    /user/local/nginx/sbin/nginx -t
    

    如果没有错误,将显示配置文件语法正确的消息。

  5. 重新启动Nginx以使更改生效:

    sudo /user/local/nginx/sbin/nginx -s reload
    

    或者

    sudo systemctl reload nginx
    
  6. 在浏览器访问
    如下图,可以看到这段js代码已经被加到 html 中
    b96c91c1768b098a37929d00214ad59.png

a7560dec07a0252657333e4760971bf.png

查看 index.html 源文件内容,如下图可以看出 index.html 源文件中并没有 console.log("hello from Judith")这段代码

90de4f7eea04340fcd758c83bcfc3fb.png

现在,当客户端访问Nginx提供的HTML页面时,Nginx将使用sub_filter指令将</body>替换为<script>console.log("hello from Judith")</script></body>,从而在HTML中添加了一段自定义的JavaScript代码。

通过这种方式,我们可以方便地使用Nginx的sub_filter模块来修改HTML响应,并根据需求添加自定义的JavaScript代码。

希望这篇博客对您有所帮助!如果您有任何其他问题,请随时提问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值