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

相关推荐
热爱嵌入式的小许5 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
Pythonliu79 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我9 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
小O_好好学10 小时前
CentOS 7文件系统
linux·运维·centos
哲伦贼稳妥11 小时前
一天认识一个硬件之机房地板
运维·网络·经验分享·其他
苹果醋311 小时前
快速玩转 Mixtral 8x7B MOE大模型!阿里云机器学习 PAI 推出最佳实践
spring boot·nginx·毕业设计·layui·课程设计
john_hjy11 小时前
11. 异步编程
运维·服务器·javascript
x晕x11 小时前
Linux dlsym符号查找疑惑分析
linux·运维·服务器
活跃的煤矿打工人12 小时前
【星海saul随笔】Ubuntu基础知识
linux·运维·ubuntu
tangdou36909865512 小时前
两种方案手把手教你多种服务器使用tinyproxy搭建http代理
运维·后端·自动化运维