nginx 响应内容中追加内容-ngx_http_addition_module

sisophon 2019-10-02 PM 18℃ 0条

ngx_http_addition_module模块是一个过滤器,用于在响应之前和之后添加文本。该模块不是默认生成的,它应该使用--with-http_addition_module配置参数启用ngx_http_addition_module在响应之前或者之后追加文本内容,比如想在站点底部追加一个js或者css,可以使用这个模块来实现,这个模块和淘宝开发的nginx footer模块有点类似,但是还是有不同. 这个模块需要依赖子请求,nginx footer依赖nginx写死的配置.

1、安装

./configure  --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module --with-http_addition_module

2、指令

(1)add_before_body

介绍: 发起一个子请求,请求给定的uri,并且将内容追加到主题响应的内容之前。

语法: add_before_body uri;

默认值: —

配置段: http, server, location

(2)add_after_body

介绍: 发起一个子请求,请求给定的uri,并且将内容追加到主题响应的内容之后。

语法: add_after_body uri;

默认值: —

配置段: http, server, location

(3)addition_types

介绍:这个指令在0.7.9开始支持,指定需要被追加内容的MIME类型,默认为“text/html”,如果制定为*,那么所有的

语法: addition_types mime-type ...;

默认: addition_types text/html;

语境: http, server, location

3、nginx配置addition

配置nginx.conf:

server {
     listen       80;
     server_name  www.sisophon.cn;
     root /var/www/www.sisophon.cn;
     location / {
        add_before_body /2019/10/header.html;
        add_after_body  /2019/10/footer.html;
     }
 }

4、测试:

以下三个文件,对应请求的主体文件和add_before_body、add_after_body对应的内容

# cat /var/www/test.sisophon.cn/2019/10/20191001_add.html
<html>
    <head>
        <title>I am title</title>
    </head>
    <body>
            ngx_http_addition_module
    </body>
</html>

# cat /var/www/test.sisophon.cn/2019/10/header.html
I am header!

# cat /data/site/test.sisophon.cn/2019/10/footer.html
footer - sisophon

# curl test.sisophon.cn/2013/10/20191001_add.html
I am header!
<html>
    <head>
        <title>I am title</title>
    </head>
    <body>
        ngx_http_addition_module
    </body>
</html>
footer - sisophon
标签: PHP, NGINX

非特殊说明,本博所有文章均为博主原创。

评论啦~