nginx配置负载均衡
1、搭建1台nginx服务,参见https://www.cnblogs.com/Forever77/p/11517711.html
2、搭建2台tomcat服务,端口分别为8081和8082,参见https://www.cnblogs.com/Forever77/p/16030476.html
3、修改本地C:\Windows\System32\drivers\etc\hosts文件,在最后增加一行192.168.85.10 www.123.com
4、在2台tomcat安装目录的webapps目录下分别创建edu/a.html,内容分别显示端口号,例如8081的webapps/edu/a.html内容如下,8082的则显示8082
<h1>8081</h1> <p>8081</p>
5.修改nginx配置文件nginx.conf,在http块的最后增加如下内容
upstream myserver { server 192.168.85.10:8081; server 192.168.85.10:8082; } server { listen 9002; server_name 192.168.85.10; location / { proxy_pass http://myserver; }
6、验证,在浏览器界面输入http://www.123.com:9002/edu/a.html,可看到有时候出现8081有时候出现8082。
nginx负载均衡的几种方式
①轮询,默认方式,每个请求按照时间顺序逐一分配到不同后端服务,如果后端服务down掉可自动踢除。
例如上述例子中,界面显示8081和8082的频率差不多,如果把8082的tomcat服务停掉,则界面只会显示8081。
②weight,按照权重比例进行分配,权重越大被分配的越多。
例如上述例子的upstream中修改为如下,则8082出现的次数与8081出现的次数比大概是2:1。
upstream myserver { server 192.168.85.10:8081 weight=1; server 192.168.85.10:8082 weight=2; }
③ip hash,按照请求的ip地址的hash结果进行分配,这样每个ip地址会固定访问一个后端服务。
upstream myserver { ip_hash server 192.168.85.10:8081; server 192.168.85.10:8082; }
④fair,按后端服务的响应时间来分配,响应时间短的优先分配。
upstream myserver { server 192.168.85.10:8081; server 192.168.85.10:8082; fair }