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

相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode9 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
ping某10 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql