nginx向响应内容中追加内容(ngx_http_addition_module模块)
ngx_http_addition_module在响应之前或者之后追加文本内容,比如想在站点底部追加一个js或者css,可以使用这个模块来实现,这个模块和淘宝开发的nginx footer模块有点类似,但是还是有不同. 这个模块需要依赖子请求,nginx footer依赖nginx写死的配置.
1. 安装nginx
1
2
3
4
5
6
|
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# tar -xzvf nginx-1.4.2.tar.gz
# cd nginx-1.4.2
# --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module --with-http_addition_module
# make
# make install
|
如果你已经安装了nginx,只想增加模块,请参考ttlsa以前的文章如何安装nginx第三方模块
2. 指令(Directives)
语法: add_before_body uri;
默认值: —
配置段: http, server, location
发起一个子请求,请求给定的uri,并且将内容追加到主题响应的内容之前。
语法: add_after_body uri;
默认值: —
配置段: http, server, location
发起一个子请求,请求给定的uri,并且将内容追加到主题响应的内容之后。
syntax: addition_types mime-type ...;
default: addition_types text/html;
context: http, server, location
这个指令在0.7.9开始支持,指定需要被追加内容的MIME类型,默认为“text/html”,如果制定为*,那么所有的
3. nginx配置addition
3.1 配置nginx.conf
1
2
3
4
5
6
7
8
9
10
11
|
server
{
listen
80
;
server
_name
www
.
ttlsa
.
com
;
root
/
data
/
site
/
www
.
ttlsa
.
com
;
location
/
{
add_before_body
/
2013
/
10
/
header
.
html
;
add_after
_body
/
2013
/
10
/
footer
.
html
;
}
}
|
3.2 测试
以下三个文件,对应请求的主体文件和add_before_body、add_after_body对应的内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# cat /data/site/test.ttlsa.com/2013/10/20131001_add.html
<
html
>
<
head
>
<
title
>
I
am
title
<
/
title
>
<
/
head
>
<
body
>
ngx_http_addition_module
<
/
body
>
<
/
html
>
# cat /data/site/test.ttlsa.com/2013/10/header.html
I
am
header
!
# cat /data/site/test.ttlsa.com/2013/10/footer.html
footer
-
ttlsa
|
访问结果如下,可以看到20131001_add.html的顶部和底部分别嵌入了子请求header.html和footer的内容。
1
2
3
4
5
6
7
8
9
10
11
|
# curl test.ttlsa.com/2013/10/20131001_add.html
I
am
header
!
<
html
>
<
head
>
<
title
>
I
am
title
<
/
title
>
<
/
head
>
<
body
>
ngx_http_addition_module
<
/
body
>
<
/
html
>
footer
-
ttlsa
|
4. 结束语
addition模块与上节上节nginx sub替换响应内容模块应用场景有点相同,具体怎么使用,大家结合实际情况来使用.欢迎大家继续访问运维生存时间.
转载请注明来自运维生存时间:http://www.ttlsa.com/html/3294.html
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!