Nginx负载均衡

x33g5p2x  于2021-09-19 转载在 其他  
字(1.7k)|赞(0)|评价(0)|浏览(381)

一、Nginx负载均衡,配置实例

1. 实现效果

浏览器地址栏输入地址 http://192.168.31.100/hello01/a.html,负载均衡效果,平均 8080 和 8081 端口中

2. 准备工作

1.准备俩台tomcat服务器

这里也是用docker安装部署的

sudo docker run -d --name mytomcat01 -p 8080:8080 -v /huanglei/v-nginx/hello01/a.html:/usr/local/tomcat/webapps/hello01/a.html tomcat:8.0
sudo docker run -d --name mytomcat02 -p 8081:8080 -v /huanglei/v-nginx/hello02/a.html:/usr/local/tomcat/webapps/hello02/a.html tomcat:8.0

这里挂载俩个文件到容器中

2.在 nginx 的配置文件中进行负载均衡的配置

3.最终测试

测试url

http://192.168.31.100/hello01/a.html

这里采用的策略是轮训,一个界面出现一次,这个上面第二个图这样出现是正常的,因为我的第二个tomcat服务器中为hello01的目录

二、nginx 分配服务器策略

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式(策略):

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

配置方式:

upstream myserver {
        server 192.168.31.100:8081;   #  在这儿
        server 192.168.31.100:8082;
    }
    server {
        listen       80;
        server_name  192.168.31.100;
        location / {
            root   html;
            proxy_pass   http://myserver;
            index  index.html index.htm;
    }

weight

weight 代表权重, 默认为 1,权重越高被分配的客户端越多

upstream myserver {
        server 192.168.31.100:8081 weight=10;   #  在这儿
        server 192.168.31.100:8082 weight=10;
    }
    server {
        listen       80;
        server_name  192.168.31.100;
        location / {
            root   html;
            proxy_pass   http://myserver;
            index  index.html index.htm;
    }

ip_hash

ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

upstream myserver {
    	ip_hash;							//  在这儿
        server 192.168.31.100:8081 ;   
        server 192.168.31.100:8082 ;
    }
    server {
        listen       80;
        server_name  192.168.31.100;
        location / {
            root   html;
            proxy_pass   http://myserver;
            index  index.html index.htm;
    }

fair(第三方)

fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myserver {					
        server 192.168.31.100:8081 ;   
        server 192.168.31.100:8082 ;
        fair; 														#  在这儿
    }
    server {
        listen       80;
        server_name  192.168.31.100;
        location / {
            root   html;
            proxy_pass   http://myserver;
            index  index.html index.htm;
    }

相关文章