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,進行訪問
多重新整理幾次,會發現頁面顯示的內容不一樣,即實現了負載均衡