目录
[3.1在 http 部分添加如下负载均衡配置:](#3.1在 http 部分添加如下负载均衡配置:)
一、环境准备
1.1三台虚拟机
这里我用的centos,但其实其他的也一样,道理就是这个理
二、开始搭建负载均衡:
2.1准备一下源
为了我们后面下载的快我们首先进行换源操作:
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup #备份采取自愿
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
刚换完源,清除缓存再生成新的缓存:
sudo yum makecache
到这一步证明你前面的没任何问题:
2.2正式安装
参考我之前文章,无脑操作
最后有可能访问不到,把自己的防火墙和setenforce关掉即可
systemctl status firewalld #查看状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld.service #我嫌它烦,直接开机自启给关掉了,你们自己看自己情况
setenforce 0
2.3Nginx安装情况
其他两个机子同理
至此三台Nginx环境配置完毕
三、修改配置文件,反向代理达到负载均衡效果
3.1在 http
部分添加如下负载均衡配置:
我使用了 upstream
模块定义了三台后端服务器。然后,在 location /
中使用 proxy_pass
将请求转发到后端服务器,实现的负载均衡
3.2简单解释一下server端:
-
proxy_set_header Host $host;
:这个指令将请求的
Host
头的值设置为后端服务器接收到的请求头。$host
是一个 Nginx 内置变量,表示客户端请求中的Host
头的值。 -
proxy_set_header X-Real-IP $remote_addr;
:这个指令将客户端的真实 IP 地址设置为后端服务器接收到的请求头。
$remote_addr
是一个 Nginx 内置变量,表示客户端的 IP 地址。 -
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
:这个指令将包含原始客户端 IP 地址的
X-Forwarded-For
头设置为后端服务器接收到的请求头。$proxy_add_x_forwarded_for
是一个 Nginx 内置变量,表示原始的X-Forwarded-For
头的值,如果这个头不存在,则添加客户端的真实 IP 地址。 -
proxy_set_header X-Forwarded-Proto $scheme;
:这个指令将客户端请求使用的协议(HTTP 或 HTTPS)设置为后端服务器接收到的请求头。
$scheme
是一个 Nginx 内置变量,表示请求的协议。
当然你可以给内容增加心跳反应,我只是做了简单的测试,方法是大同小异的,nginx也是有很多算法,这里有篇文章写的还不错Nginx的五种算法_nginx算法有哪些-CSDN博客,可以去了解一下
四、最终实现结果:
修改nginx下html中默认访问的内容,我头方便呢,但是原理就是如此,我们此篇文章只研究负载均衡