Linux&Nginx16_Nginx负载均衡7

一、概念

 在网站创立初期,我们一般都使用单台机器对外提供集中式服务。随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务,但是,我们网站对外提供的访问入口通常只有一个,比如 www.web.com。那么当用户在浏览器输入www.web.com进行访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情。

 负载均衡通常是指将请求"均匀"分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀的,并不是完全均匀。

 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器FTP服务器企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

二、负载均衡实现方式

 1. 硬件负载均衡

  比如F5、深信服、Array等

  优点是有厂商专业的技术服务团队提供支持,性能稳定

  缺点是费用昂贵,对于规模较小的网络应用成本太高

 2. 软件负载均衡

  比如 Nginx、LVS、HAProxy 等

  优点是免费开源,成本低廉

 

三、准备工作

 (1)将刚才存放工程的tomcat复制三份,修改端口分别为8080 ,8081,8082。

   注意:要修改tomcat/conf/server.xml中Connector、Server标签所有出现port的地方。

   

   

 (2)分别启动这三个tomcat服务。

   

 (3)为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分(webapps项目里index.html的title加上各自的端口号来区分)

   

四、配置负载均衡

 修改nginx配置文件:

upstream tomcat-travel{
       server 192.168.240.128:8080;
       server 192.128.240.128:8081;
       server 192.168.240.128:8082;
}

server {
        listen       80; # 监听的端口
        server_name  www.hmtravel.com; # 域名或ip
        location / {    # 访问路径配置
            # root   index;# 根目录
          proxy_pass http://tomcat-travel;
           index  index.html index.htm; # 默认首页
        }
}

 重启nginx,浏览器访问http://www.hmtravel.com/ 刷新观察每个网页的标题,看是否不同。

 经过测试,三台服务器出现的概率各为33.3333%,交替显示。

 如果其中一台服务器性能比较好,想让其承担更多的压力,可以设置权重。

upstream tomcat-travel{
       server 192.168.240.128:8080 weight=2;
       server 192.128.240.128:8081;
       server 192.168.240.128:8082;
}

 其中weight=2表示权重,用于后端服务器性能不均的情况,访问比率约等于权重只比,权重越大访问机会越多

 upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发发到该故障的机器

 这样访问tomcat 8080:8081:8082的比例是2:1:1,重启nginx,访问url每刷新4次,有两次是8080

 

posted on 2023-04-11 19:13  花溪月影  阅读(21)  评论(0编辑  收藏  举报