本编博客通过一个具体的实例完整的体西现什么是负载均衡,有图有真相。


文章目录

  • 1. 实例准备
  • 2. 负载均衡实例展示
  • 3. 测试实例效果
  • 4. 负载均衡分配策略



负载均衡的理论概念我上一篇博客已经梳理的很清楚了,如果没有看的可以先看一看下面是链接


Nginx理论基础——有图有真相

1. 实例准备

  • 实例说明 :
    浏览器地址栏输入地址 http://192.168.17.129/edu/a.html ,负载均衡效果,平均 8080
    和 和 8081 端口中,请求的策略分配。
  • 准备工作
    (1 )准备两台 tomcat 服务器,一台 8080 ,一台 8081
    (2 )在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建
    页面 a.html

说明 因为本片博客是连载跟新说一上面的准备工作已经在这一篇什么是Nginx反向代理,让你明明白白里面写好了只需要把vod问价夹改为edu文件夹就可以了。如果你是刚刚接触Nginx最好从上面的理论概念篇开始看起。

2. 负载均衡实例展示

  • 开始两台tomcat服务器,一个8080,一个8081。

nginx rtsp 负载均衡 nginx负载均衡是什么_nginx rtsp 负载均衡


启动好服务器后进入Nginx配置文件路径,进行负载均衡配置。

nginx rtsp 负载均衡 nginx负载均衡是什么_负载均衡_02

到这里点击回车进入vim编辑器。

添加如下代码

upstream myserver{
       server 192.168.0.103:8080;
       server 192.168.0.103:8081;      
    }
    server {
        listen       80;
        server_name  192.168.0.103;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            proxy_pass  http://myserver;
            index  index.html index.htm;
        }

效果图如下:

nginx rtsp 负载均衡 nginx负载均衡是什么_linux_03


完成之后退出并保存配置文件。:wq

然后进入Nginx文件夹中的sbin文件夹中在启动Nginx,

nginx rtsp 负载均衡 nginx负载均衡是什么_负载均衡_04

3. 测试实例效果

打开游览器输入:http://192.168.0.103/edu/a.html后出现页面。

nginx rtsp 负载均衡 nginx负载均衡是什么_linux_05

点击刷新按钮,你会发现地址栏没有改变但是tomcat服务器发生了改变,

nginx rtsp 负载均衡 nginx负载均衡是什么_nginx rtsp 负载均衡_06


实验成功。

4. 负载均衡分配策略

  1. 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。上面的实例就是这一中
  2. weight (权重)
    weight 代表权,重默认为 1,权重越高被分配的客户端越多 指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。如:
upstream server_pool {
	  server 192.168.5.21 weight = 10 ;
	  server 192.168.5.22 weight = 10 ;
	}
  1. ip_hash
    每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
    可以理解为当你访问了服务器以后你初始访问的哪个服务器,以后再要访问就一直是这个服务器。 如:
upstream server_pool {
	  ip_hash ;
	  server 192.168.5.21:80 ;
	  server 192.168.5.22:80 ;
	}
  1. fair (第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。如
upstream server_pool {
	  server 192.168.5.21:80 ;
	  server 192.168.5.22:80 ;
	  fair ;
	}