随笔 - 306  文章 - 0  评论 - 5  阅读 - 96147

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   花溪月影  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2021-04-11 Java基础00-学生管理系统16
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示