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
編輯內容如下:

The host is 192.168.0.5 – Node 1

啟動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
編輯內容如下:

The host is 192.168.0.7 – Node 2

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

到此這篇關於Nginx配置之實現多臺服務器負載均衡的文章就介紹到這瞭,更多相關Nginx配置負載均衡內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: