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
}

 

posted @ 2022-03-22 19:17  Forever77  阅读(94)  评论(0编辑  收藏  举报