Nginx负载均衡

文章目录

1. 负载均衡概念介绍

负载均衡概念 :负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
负载概念简略:将工作任务分担到几台几十台甚至几百台服务器上以提高处理能力,分担网站压力,还有个叫cdn的技术也能实现减少网站压力

本文使用Nginx反向代理来实现负载均衡,下面是Nginx负载均衡的支持类型:

轮询、权重、ip_hash、url_hash、最小连接数、最小时间数等

其中如果要暂时保持长链接可使用ip_hash或url_hash模式(面试被问到了,就这一句话)

以下为本次实现负载均衡的架构

2.负载均衡环境搭建

本次系统使用的是乌班图ubantu-16.04.03.iso

准备共三台(u1,u2,u3),u1一台为前端服务器,u2,u3两台为后端服务器

分别在三台乌班图上安装Nginx,安装Nginx命令为

c 复制代码
apt install nginx

修改u1 的 /etc/nginx/nginx.conf文件设置反向代理,http域下的无关参数太多了,我嫌麻烦就全删了,只保留了必要的反向代理配置文件

c 复制代码
http {

upstream nginx_php{
   # 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2
   server 192.168.100.137:80 weight=100 max_fails=2 fail_timeout=30s;
   server 192.168.100.138:80 weight=200 max_fails=2 fail_timeout=30s;
   # 这里的IP请配置成你WEB服务所在的机器IP
}

server {
        listen 80;
        server_name localhost;
        index index.php index.html;
        root html;
        location / {
                # 配置一下index的地址,最后加上index.ftl。
                index  index.html index.htm index.jsp index.ftl;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                # 请求交给名为nginx_boot的upstream上
                proxy_pass http://nginx_php;
        }
}



}

其中的

c 复制代码
upstream nginx_php{
   # 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2
   server 192.168.100.137:80 weight=100 max_fails=2 fail_timeout=30s;
   server 192.168.100.138:80 weight=200 max_fails=2 fail_timeout=30s;
   # 这里的IP请配置成你WEB服务所在的机器IP
}

两个server后的为u2,u3的ip,目的是代理它们。

而

c 复制代码
 proxy_pass http://nginx_php;

指向的是upstream nginx_php

接着分别修改u2,u3的/var/www/html/index.nginx-debian.html网页文件,来区分显示

u2

u3

重启u1的Nginx的服务,并访问u1链接,查看轮询负载均衡效果

c 复制代码
systemctl restart nginx.service //重启

第一次访问u1被指向了u2,我们多刷新几次

第二次指向了u3,而第四次则又指向了u2,至此一个简单的nginx负载均衡环境有已实现

相关推荐
小白的码BUG之路7 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
缓慢更新9 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾9 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
迪康妍妍9 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn9 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
zxcvb15310 小时前
运维经验分享:监控网页更新内容的几种思路
运维
云飞云共享云桌面11 小时前
设计师共享单台图形服务器,解决 SolidWorks大装配卡顿难题
运维·服务器·3d·自动化·电脑·制造
无足鸟ICT12 小时前
【RHCA+】RPM包命名规则
linux·运维·服务器
迪康Defender12 小时前
终端安全运维:浅谈迪康端点安全一体化管理系统工具箱实用能力
运维·安全·信息可视化·自动化·运维开发·学习方法·远程工作
广东帝工智能安防12 小时前
航道数智化升级实战:基于“云-网-数-智“架构的信息化基础设施建设方案
大数据·运维·人工智能