Nginx負載均衡之HTTP反向代理(二)

     前面我們已經瞭解了負載均衡的基本概念,我們可以畫個圖來看看,從互聯網進來的所有請求,都會先由Nginx負載均衡接收,然後再根據指定的策略來分發給後端的衆多服務器,至於是哪些策略,後文會進行介紹,具體如下圖所示

 1.png 

    現在大部分的業務都以B/S結構的網站方式存在,接下來我們來試試做一個網站的負載均衡,我們要實現的目標:

1、後端有兩臺服務器,每臺都可以對外提供服務,且同時對外提供;

2、後端的其中一臺服務器故障時,不會中斷用戶訪問;

    通過這個實驗,我們的網站將具備高可用性,因爲只要不是後端服務器全部損壞,用戶就始終可以訪問到服務器,在訪問量畢竟大時,Nginx將會把訪問量分發到不同的服務器上進行承載,不會受限於單臺服務器性能不足導致用戶體驗不佳的問題。

   

HTTP 負載均衡

目標: 通過Nginx來實現後端兩臺服務器的負載均衡,且以輪詢的方式將請求分發到不同的服務器上


角色

機器名

IP地址

Nginx

Host1

192.168.30.130

Web Server

Host2

192.168.30.131

Web Server

Host3

192.168.30.132

 

新建一個http.conf的配置文件,我們將用這些文件來實現此實驗目標

vim /etc/nginx/conf.d/http.conf

將以下內容複製粘貼到配置文件中

upstream httptest {

    server 192.168.30.131:80    weight=1;

    server 192.168.30.132:80    weight=1;

}

server {

    listen 80;

    server_name www.example.com;

    access_log /var/log/nginx/httptest;

    error_log /var/log/nginx/errortest;

    location / {

    index index.html;

    proxy_pass http://httptest;

}

}

具體配置文件效果如下

2.png 

測試一下配置文件是否有問題

nginx -t

3.png

啓動nginx服務並開啓防火牆

systemctl restart nginx

firewall-cmd --add-port=80/tcp

firewall-cmd --add-port=80/tcp --permanent

 

配置文件上第一行的upstream 是一個反向代理模塊,httptest是字符串,下方的server 192這兩行是真實的服務器地址,真正的網站是由他們提供的,我們來測試一下,根據server_name這一行來看,將會響應這個請求頭,我們需要在Host2,Host3服務器上做以下操作,生成網站內容,稍後看效果

Host2上執行以下命令

yum install httpd -y

echo lixiaohui > /var/www/html/index.html

systemctl restart httpd

firewall-cmd --add-port=80/tcp

firewall-cmd --add-port=80/tcp --permanent

Host3上執行以下命令

yum install httpd -y

echo lixiaohui222222222 > /var/www/html/index.html

systemctl restart httpd

firewall-cmd --add-port=80/tcp

firewall-cmd --add-port=80/tcp --permanent

 

以上命令是在兩臺服務器上安裝了apache,並生成了不同的頁面內容,我們快來試試通過nginx來訪問吧~,大家要注意哦,如果想要用windows來訪問,需要在Windows上加本地hosts文件

 

    通過實驗我們可以看到,隨着用戶的訪問,Nginx將我們的請求分別在兩臺服務器上進行處理,大大提升了服務器的的負載能力,也屏蔽了單臺服務器故障給用戶帶來的訪問中斷問題,提升負載能力的同時,還降低了訪問中斷的現象。

我們下一篇開始研究TCP UDP 的負載均衡做法,敬請期待哦~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章