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负载均衡环境有已实现

相关推荐
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la1 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20151 小时前
STUN服务器实现NAT穿透
运维·服务器
PieroPc1 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
冷曦_sole2 小时前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒2 小时前
Linux(二)_清理空间
linux·运维·服务器
tntlbb3 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Linux运维技术栈4 小时前
Ansible(自动化运维)环境搭建及ansible-vault加密配置
运维·自动化·ansible
Bessssss5 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos