如有两个节点xxx.xx.xxx.123、xxx.xx.xxx.456,
一、tomcat组件负载均衡
部署后端服务,启动tomcat即可启动服务。如123和456的8080端口上均部署了myTest服务,使用upstream直接代理即可。
upstream myTest_upstream {
server xxx.xx.xxx.123:8080 weight=10 max_fails=10 fail_timeout=2s;
server xxx.xx.xxx.456:8080 weight=10 max_fails=10 fail_timeout=2s;
}
server {
listen 80;
server_name xxx.xxx.cn;
set $bg_groupName MYTEST;
set $bg_env online;
location ~ /myTest/(.*) {
set $bg_context_path myTest;
set $backend myTest_upstream;
rewrite_by_lua_file '/usr/local/nginx/nginx/bluegreen-lua/src/upstream_chooser.lua';
proxy_set_header Host $http_host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://$backend;
access_log logs/access_myTest.log main;
}
}
二、静态页面负载均衡
有几下几种方法:
1、tomcat部署
静态页面放到后端的静态目录下/src/main/resources,使用tomcat启动后端即可访问静态页面,当代理了该ip端口负载均衡后,静态页面也实现了负载均衡。具体方法同上。
2、静态目录
将静态页面(如html、vue打包后的dist文件等)放到某一目录下如/data/***,使用本机nginx反向代理该目录,那么通过nginx也可以访问静态页面。此时实现负载均衡需要一个总nginx代理两个子nginx,所以需要三个nginx:
(1)123机器:
安装nginx,上传目标文件到固定目录下,使用nginx代理该目录,如:
server {
listen 70;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
error_page 405 =200 $request_uri;
location ^~ /report-h5/ {
root /data/public/nginx/;
}
location ^~ /message-h5/ {
root /data/public/nginx/;
}
}
(2)456机器:
同123机器
(3)主Ng:
主ng可以安装在123机器上,可以安装在456机器上,也可以安装在其他机器上。负责负载均衡123和456两个机器,
location ^~ /report-h5 {
set $bg_context_path htm-report-app;
set $backend report_upstream;
rewrite_by_lua_file '/usr/local/nginx/nginx/bluegreen-lua/src/upstream_chooser.lua';
proxy_set_header Host $http_host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://$backend;
access_log logs/access_htm-report-app.log main;
}
location ^~ /message-h5 {
set $bg_context_path htm-message-app;
set $backend message_upstream;
rewrite_by_lua_file '/usr/local/nginx/nginx/bluegreen-lua/src/upstream_chooser.lua';
proxy_set_header Host $http_host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://$backend;
access_log logs/access_htm-message-app.log main;
}
upstream report_upstream {
server xxx.xx.xxx.123:70 max_fails=1 fail_timeout=10s;
server xxx.xx.xxx.456:70 max_fails=1 fail_timeout=10s;
}
upstream message_upstream {
server xxx.xx.xxx.123:70 max_fails=1 fail_timeout=10s;
server xxx.xx.xxx.456:70 max_fails=1 fail_timeout=10s;
}
三、tomcat和静态页面同时存在
1、后端组件
直接使用主ng负载均衡即可;
2、静态页面
(1)分别上传到123、456两个子Ng上,并配置反向代理;
(2)使用主ng代理两个子Ng。