nginx中http_addition_module模块(向响应内容中追加内容)

简介:

ngx_http_addition_module在响应之前或者之后追加文本内容,比如想在站点底部追加一个js或者css,可以使用这个模块来实现,这个模块和淘宝开发的nginx footer模块有点类似,但是还是有不同. 这个模块需要依赖子请求,nginx footer依赖nginx写死的配置.


1. 安装nginx

# 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

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对应的内容

# 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的内容。

# 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替换响应内容模块应用场景有点相同,具体怎么使用,大家结合实际情况来使用.欢迎大家继续访问运维生存时间.


本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1864379
相关文章
|
28天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
68 7
|
2月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
150 1
|
3月前
|
Shell
HTTP状态码解析:在Haskell中判断响应成功与否
HTTP状态码解析:在Haskell中判断响应成功与否
|
2月前
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
119 62
|
2月前
|
存储 JSON API
HTTP 请求与响应处理:C#中的实践
【10月更文挑战第4天】在现代Web开发中,HTTP协议至关重要,无论构建Web应用还是API开发,都需要熟练掌握HTTP请求与响应处理。本文从C#角度出发,介绍HTTP基础知识,包括请求与响应结构,并通过`HttpClient`库演示如何发送GET请求及处理响应,同时分析常见错误并提供解决方案,助你更高效地完成HTTP相关任务。
100 2
|
3月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
189 8
|
2月前
|
应用服务中间件 nginx C++
nginx的cgi模块
nginx的cgi模块
41 0
|
2月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
22 0
|
2月前
|
移动开发 网络协议 C语言
详解 httptools 模块,一个 HTTP 解析器
详解 httptools 模块,一个 HTTP 解析器
39 0
|
3月前
|
开发者
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
37 1