针对中间件部署的应用(war包),可使用nginx自带的反向代理以及轮询功能,实现应用的负载均衡。
一、架构图
二、环境准备
准备2套环境,如19.1.0.18:7001,19.1.0.16:7001;环境使用相同的应用包、中间件以及配置文件(如数据库连接、redis),目的是可单独使用任意一套环境。
三、配置
在服务器对应目录下,修改nginx配置文件nginx.conf,具体配置如下:
1、在server节点的同级目录下新增upstream,后加服务名,如例子中的baseserver;服务名可自定义,该服务名会在后续的反向代理中用到;里面的server为中间件节点对应的ip+端口;
2、添加反向代理,在原有server下或新建一个server,添加相关代码;
upstream baseserver{ #ip_hash; server 19.1.0.18:7001; server 19.1.0.16:7001; } server { listen 88; server_name localhost 19.1.0.18; client_max_body_size 300M; location / { #“/”表示在本server下,没有匹配上其他location的请求全部转入这里 proxy_pass http://baseserver; #baseserver为upstream定义的服务名 add_header backendIP $upstream_addr; #作用是在每个请求的请求头中显示本次请求是轮询的哪个服务器 add_header backendCode $upstream_status; #作用是在每个请求的请求头中显示本次请求的状态 proxy_set_header Host $http_host; #作用是添加请求头参数 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
四、验证是否成功
访问使用nginx的ip和端口访问系统,如http://19.1.0.18:88/ApprTest/login.do,通过刷新页面的方式查看请求头返回的服务器是否变化。
刷新页面再次查看
每次请求的服务器不一样,说明配置成功。