Nginx多臺服務器實現負載均衡

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

實現目的:用戶訪問Nginx-Server時,通過Nginx負載均衡到Web1和Web2服務器。

Nginx負載均衡服務器的nginx.conf

配置注釋如下:

events
{
    use epoll;
    worker_connections 65535;
}
http
{
    ##upstream的負載均衡,四種調度算法##
    #調度算法1:輪詢.每個請求按時間順序逐一分配到不同的后端服務器,
    #如果后端某臺服務器宕機,故障系統被自動剔除,使用戶訪問不受影響
    upstream webhost {
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
    }
    #調度算法2:weight(權重).可以根據機器配置定義權重.權重越高被分配到的幾率越大
    upstream webhost {
        server 192.168.0.5:6666 weight=2;
        server 192.168.0.7:6666 weight=3;
    }
    #調度算法3:ip_hash. 每個請求按訪問IP的hash結果分配,這樣來自同一個IP的訪客固定訪問一個后端服務器,
    #有效解決了動態網頁存在的session共享問題
    upstream webhost {
        ip_hash;
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
    }
    #調度算法4:url_hash(需安裝第三方插件).此方法按訪問url的hash結果來分配請求,
    #使每個url定向到同一個后端服務器,可以進一步提高后端緩存服務器的效率.
    #Nginx本身是不支持url_hash的,如果需要使用這種調度算法,必須安裝Nginx 的hash軟件包
    upstream webhost {
        server 192.168.0.5:6666 ;
        server 192.168.0.7:6666 ;
        hash $request_uri;
    }
    #調度算法5:fair(需安裝第三方插件).這是比上面兩個更加智能的負載均衡算法.
    #此種算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的響應時間來分配請求,
    #響應時間短的優先分配.Nginx本身是不支持fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊
    #
    #虛擬主機的配置(采用調度算法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服務器可以通過X-Forwarded-For獲取用戶真實IP
            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; #nginx跟后端服務器連接超時時間(代理連接超時)
            proxy_send_timeout 90; #后端服務器數據回傳時間(代理發送超時)
            proxy_read_timeout 90; #連接成功后,后端服務器響應時間(代理接收超時)
            proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
            proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的設置
            proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
            proxy_temp_file_write_size 64k;
            #設定緩存文件夾大小,大于這個值,將從upstream服務器傳
        }
    }
}

配置 192.168.0.4(Nginx-Server)

創建文件夾準備存放配置文件

$ 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;
       }
   }
}

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

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

創建文件夾用于存放web頁面

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

編輯內容如下:

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

創建文件夾用于存放web頁面

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

編輯內容如下:

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容