nginx实现负载均衡

 

 

一、负载均衡

负载均衡就是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

根据此次做的实验来理解就是,当大量用户访问某个服务器时(即主服务器),为了减轻主服务器的负担,就会跳转到自己的子服务器上,实现均衡负载。

 

二、反向代理与正向代理

反向代理:代理的是服务器端

正向代理:代理的是客户端

 

三、用nginx实现负载均衡

 

环境:三台centos7虚拟机

 

1.先创建第一台虚拟机,等环境配置好后,另外两台直接克隆就可以

这里,创建的第一台虚拟机作为主服务器,克隆的两台分别作为子服务器一、子服务器二

 

2.装好虚拟机后,打开终端

进入root:

su root

 

3.安装nginx

先更新下rpm依赖库,配置两个源站

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  

再安装nginx

yum -y install nginx

  

nginx实现负载均衡

 

nginx实现负载均衡

 

 

4.安装maridab

安装maridab

yum -y install mariadb-server

  

启动maridab

systemctl start mariadb.service

  

初始化maridab

mysql_secure_installation

  

5.安装php/fpm

yum -y install php php-fpm

  

6.更改nginx配置文件

 

打开 default.conf

vim /etc/nginx/conf.d/default.conf

  

按下键盘上的 i 键进入编辑模式

nginx实现负载均衡

 

启动 nginx 和 php-fpm

systemctl start php-fpm nginx

  

7.编辑 index.php 文件,向网页中写入内容

vim /usr/share/nginx/html/index.php

  

按下键盘上的 i 键进入编辑模式

输入:

<?php echo ‘<p>******</p>‘; ?>

  

******可替换为别的内容,只要在后边修改两个子服务器的php文件的内容不一样就行,为了能够肉眼看出实现负载均衡
写完内容之后,:wq,保存并退出


8.关闭防火墙及selinux
systemctl status firewalld     //查看防火墙状态
systemctl stop firewalld       //关闭防火墙
setenforce 0            //关闭selinux

  

9.完成以上操作后,关机,进行克隆

选择虚拟机当前状态,创建完整克隆

克隆完两台后,将三台虚拟机都开机

 

10.修改php文件

由于克隆的虚拟机中都已经安装和配置好nginx了,所以不需要再重新安装

现在需要修改两台子服务器的 php 文件

让php文件里的内容不一样,这样在网页上显示的时候就不一样,可以看出用户进行访问时,是用的哪台服务器

vim /usr/share/nginx/html/index.php

  

两台子服务器均进行以上操作

可以将子服务器一的******换成*

子服务器二的******换成**

 

11.分别在克隆的虚拟机中查看两台子服务器的ip地址

ifconfig

  

nginx实现负载均衡

 

 

12.再回到主服务器,修改nginx配置文件

vim /etc/nginx/conf.d/default.conf

  

按 i 进入编辑

(1)将之前更改的 index.php 再改回 index.html

(2)在文件的顶部添加以下模板的内容:

upstream (启用功能)$名字  {
      server $IP/$Domain A;   
      server $IP/$Domain B;
}

  

如:

upstream lcf  {
      server 192.168.149.131; //子服务器一的ip
      server 192.168.149.137;  //子服务器二的ip
}

  

(3)在server内部添加:proxy_pass http://$名字;

location / {
……
proxy_pass http://$名字;
     }
}

  

如:

location / {
……
proxy_pass http://lcf;
     }
}

  

(4):wq 保存并退出

 

13.开启nginx服务

systemctl start nginx

  

14.查看主服务器的ip

ifconfig

  

在自己电脑的浏览器上输入主服务器的ip,进行访问

多刷新几次,会发现页面显示的内容不一样,即实现了负载均衡

 

nginx实现负载均衡

上一篇:开发小技巧


下一篇:生成证书