1. 程式人生 > 其它 >nginx實現負載均衡

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

  

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 和 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

  

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,進行訪問

多重新整理幾次,會發現頁面顯示的內容不一樣,即實現了負載均衡