文章目录
- [1. 负载均衡概念介绍](#1. 负载均衡概念介绍)
- 2.负载均衡环境搭建
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负载均衡环境有已实现