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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2021-04-11 Java基础00-学生管理系统16