一、什么是负载均衡
当一台服务器单位时间访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就容会崩掉。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。
我们可以建立多个服务器,组成一个服务器集群,当用户访问网站时,先访问中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,既分担了服务器压力,有避免了服务器崩溃的情况。
二、Nginx负载均衡的实现
① 至少三台服务器(虚拟机)
1.apache启动并部署页面
134和135服务器分别启动apache,代码如下:
systemctl start httpd
分别检查一下apache的状态,代码如下:
systemctl status httpd
访问apache首页:192.168.254.134/135,
在 /var/www/html 简单写个test.html,代码如下(写两份,一个134一个135):
<!DOCTYPE html>
<html>
<head>
<title>负载均衡</title>
</head>
<body>
这是192.168.254.134服务器!你好!!!
<!-- 这是192.168.254.135服务器!你好!!! -->
</body>
</html>
访问 192.168.254.134/test.html 和 192.168.254.135/test.html ,页面如下
2.nginx启动
132服务器分别启动nginx,代码如下:
systemctl start nginx
检查一下nginx的状态,代码如下
systemctl status nginx
3.nginx配置反向代理
132服务器,进入 /etc/nginx 然后 ls :
我们需要修改的是nginx.conf配置文件,替换80端口location节点下的内容,修改内容如下:
location / {
proxy_pass http://192.168.254.134:80;
}
保存文件后,重载nginx,代码如下:
systemctl reload nginx
那么现在,当你访问192.168.254.132:80/test.html的时候,其实你访问到的是192.168.254.134:80/test.html,如下图:
4.nginx配置负载均衡
还是修改nginx.conf配置文件,在配置文件的80的server节点上新增upstream节点,代码如下:
upstream test{
server 192.168.254.134:80;
server 192.168.254.135:80;
}
修改第二步中提到的location节点内容,将proxy_pass指向upsteam节点的名字test,代码如下:
location / {
proxy_pass http://test;
}
保存文件,重载nginx,代码如下:
systemctl reload nginx
此时我们再访问192.168.254.132:80/test.html,这是你发现一会访问到的是192.168.254.134:80/test.html,一会访问到的是192.168.254.135:80/test.html
,如果如下;
那么这样也就是实现了通过nginx代理apache,实现轮询策略的负载均衡。