NGINX反向代理在测试中的几个应用场景
Posted Yannan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGINX反向代理在测试中的几个应用场景相关的知识,希望对你有一定的参考价值。
nginx反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
利用NGINX搭建反向代理服务器,对于测试环境可以有如下作用:
按照NGINX标准格式记录应用访问的日志(不记录应用自身程序调用日志),长流程应用如果在同一套NGINX中,则可以实现按照交易调用时间戳顺序记录日志,解决了各应用时钟不一致对于日志分析的影响
通过lua组件,可以实现对于GET,POST,REQUEST接口和BODY内容的标准化记录,解决了接口报文采集的问题,可以快速的实现对全量应用的接口报文捕获,同时也解决了原来通过正则表达式解析报文的效率问题。
实现方法
实现方法非常简单,只需要安装NGINX和LUA组件,然后配置成HTTP和SOCKET反向代理服务器,指向应用的应用服务或接口服务。
配置文件
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format dm '[$time_local] - $remote_addr - $http_referer - $request - $request_body';
access_log logs/post.log dm;
server {
listen 8080;
server_name localhost;
location /aaa {
lua_need_request_body on;
content_by_lua 'local s = ngx.var.request_body';
proxy_pass http://2.2.2.2:9081/aaa;
}
location /bbb {
lua_need_request_body on;
content_by_lua 'local s = ngx.var.request_body';
proxy_pass http://3.3.3.3:8080/bbb;
}
}
}
include /usr/local/nginx/socket/socket.conf;
socket.conf
error_log logs/socket.log debug;
stream {
upstream bss_num_socket {
hash $remote_addr consistent;
server 1.1.1.1:9998 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 9998;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass bss_num_socket;
}
}
以上是关于NGINX反向代理在测试中的几个应用场景的主要内容,如果未能解决你的问题,请参考以下文章