Nginx多臺服務(wù)器實(shí)現(xiàn)負(fù)載均衡

Nginx負(fù)載均衡服務(wù)器: IP:192.168.0.4(Nginx-Server)
Web服務(wù)器列表:
Web1: 192.168.0.5(Nginx-Node1/Nginx-Web1)
Web2:192.168.0.7(Nginx-Node2/Nginx-Web2)

實(shí)現(xiàn)目的:用戶訪問Nginx-Server時,通過Nginx負(fù)載均衡到Web1和Web2服務(wù)器。

Nginx負(fù)載均衡服務(wù)器的nginx.conf

配置注釋如下:

events
{
    use epoll;
    worker_connections 65535;
}
http
{
    ##upstream的負(fù)載均衡,四種調(diào)度算法##
    #調(diào)度算法1:輪詢.每個請求按時間順序逐一分配到不同的后端服務(wù)器,
    #如果后端某臺服務(wù)器宕機(jī),故障系統(tǒng)被自動剔除,使用戶訪問不受影響
    upstream webhost {
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
    }
    #調(diào)度算法2:weight(權(quán)重).可以根據(jù)機(jī)器配置定義權(quán)重.權(quán)重越高被分配到的幾率越大
    upstream webhost {
        server 192.168.0.5:6666 weight=2;
        server 192.168.0.7:6666 weight=3;
    }
    #調(diào)度算法3:ip_hash. 每個請求按訪問IP的hash結(jié)果分配,這樣來自同一個IP的訪客固定訪問一個后端服務(wù)器,
    #有效解決了動態(tài)網(wǎng)頁存在的session共享問題
    upstream webhost {
        ip_hash;
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
    }
    #調(diào)度算法4:url_hash(需安裝第三方插件).此方法按訪問url的hash結(jié)果來分配請求,
    #使每個url定向到同一個后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率.
    #Nginx本身是不支持url_hash的,如果需要使用這種調(diào)度算法,必須安裝Nginx 的hash軟件包
    upstream webhost {
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
        hash $request_uri;
    }
    #調(diào)度算法5:fair(需安裝第三方插件).這是比上面兩個更加智能的負(fù)載均衡算法.
    #此種算法可以依據(jù)頁面大小和加載時間長短智能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時間來分配請求,
    #響應(yīng)時間短的優(yōu)先分配.Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊
    #
    #虛擬主機(jī)的配置(采用調(diào)度算法3:ip_hash)
    server
    {
        listen  80;
        server_name  mongo.demo.com;
        #對 "/" 啟用反向代理
        location / {
            proxy_pass http://webhost;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            #后端的Web服務(wù)器可以通過X-Forwarded-For獲取用戶真實(shí)IP
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #以下是一些反向代理的配置,可選.
            proxy_set_header Host $host;
            client_max_body_size 10m; #允許客戶端請求的最大單文件字節(jié)數(shù)
            client_body_buffer_size 128k; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù),
            proxy_connect_timeout 90; #nginx跟后端服務(wù)器連接超時時間(代理連接超時)
            proxy_send_timeout 90; #后端服務(wù)器數(shù)據(jù)回傳時間(代理發(fā)送超時)
            proxy_read_timeout 90; #連接成功后,后端服務(wù)器響應(yīng)時間(代理接收超時)
            proxy_buffer_size 4k; #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小
            proxy_buffers 4 32k; #proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的設(shè)置
            proxy_busy_buffers_size 64k; #高負(fù)荷下緩沖大小(proxy_buffers*2)
            proxy_temp_file_write_size 64k;
            #設(shè)定緩存文件夾大小,大于這個值,將從upstream服務(wù)器傳
        }
    }
}

配置 192.168.0.4(Nginx-Server)

創(chuàng)建文件夾準(zhǔn)備存放配置文件

$ mkdir -p /opt/confs
$ vim /opt/confs/nginx.conf
events
{
 use epoll;
 worker_connections 65535;
}

http
{
upstream webhost {
       ip_hash;
       server 192.168.0.5:6666 ;
       server 192.168.0.7:6666 ;
   }

server
   {
       listen  80;
       server_name  mongo.demo.com;
    location / {
           proxy_pass http://webhost;
           proxy_redirect off;
           proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
           client_max_body_size 10m;
           client_body_buffer_size 128k;
           proxy_connect_timeout 90;
           proxy_send_timeout 90;
           proxy_read_timeout 90;
           proxy_buffer_size 4k;
           proxy_buffers 4 32k;
           proxy_busy_buffers_size 64k;
           proxy_temp_file_write_size 64k;
       }
   }
}

啟動負(fù)載均衡服務(wù)器192.168.0.4(Nginx-Server)

配置 192.168.0.5(Nginx-Node1/Nginx-Web1)

創(chuàng)建文件夾用于存放web頁面

$ mkdir -p /opt/html
$ vim /opt/html/index.html

編輯內(nèi)容如下:

<div>
 <h1>   
   The host is 192.168.0.5 - Node 1
 </h1>
</div>

啟動192.168.0.5(Nginx-Node1/Nginx-Web1)

配置192.168.0.7(Nginx-Node2/Nginx-Web2)

創(chuàng)建文件夾用于存放web頁面

$ mkdir -p /opt/html
$ vim /opt/html/index.html

編輯內(nèi)容如下:

<div>
 <h1>   
   The host is 192.168.0.7 - Node 2
 </h1>
</div>

啟動192.168.0.7(Nginx-Node2/Nginx-Web2)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容