nginx的addition模块在响应的前后报文添加内容与变量的运行原理

nginx默认未编译此模块;让nginx编译启用此模块

./configure --prefix=/data/web --sbin-path=/usr/bin --user=nginx --group=nginx --with-http_stub_status_module --with-http_auth_request_module --with-http_sub_module --add-module=/root/nginx-http-concat --with-http_addition_module
 make
mv /usr/bin/nginx{,.07.12.13.18}
 cp objs/nginx /usr/bin/
addition指令介绍
Syntax: add_before_body uri; #在body之前添加,添加的内容就是后面的uri,让nginx去访问这个uri获取资源,根户请求返回的添加待body之前
Default: —
Context: http, server, location
Syntax: add_after_body uri;  # 在body之后添加
Default: —
Context: http, server, location
Syntax: addition_types mime-type ...;  #那些资源类型的请求可以使用
Default: addition_types text/html; 
Context: http, server, location

  配置不启用时;配置

[root@python vhast]# cat addition.conf 
server {
	server_name addition.com;
	access_log logs/addition.log main;
	location / {
		#add_before_body /before_action;
		#add_after_body /after_action;
		#addition_types *;
	}
	location /before_action {
		return 200 'new centos before_action
';
	}
	location /after_action {
		return 200 'new centos after_action
';
	}
}

  测试

[root@python vhast]# curl addition.com
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
         35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

  启用配置

[root@python vhast]# cat addition.conf 
server {
	server_name addition.com;
	access_log logs/addition.log main;
	location / {
		add_before_body /before_action;  头部添加;这个uri返回的结果
		add_after_body /after_action;  尾部添加;这个uri返回的结果
		addition_types *;
	}
	location /before_action {
		return 200 'new centos before_action
';
	}
	location /after_action {
		return 200 'new centos after_action
';
	}
}

  测试

[root@python vhast]# curl addition.com
new centos before_action
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
         35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
new centos after_action
 
 
草都可以从石头缝隙中长出来更可况你呢
原文地址:https://www.cnblogs.com/rdchenxi/p/11176953.html