Nginx負載均衡服務(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)
實現(xiàn)目的:用戶訪問Nginx-Server時,通過Nginx負載均衡到Web1和Web2服務(wù)器。
Nginx負載均衡服務(wù)器的nginx.conf
配置注釋如下:
events
{
use epoll;
worker_connections 65535;
}
http
{
##upstream的負載均衡,四種調(diào)度算法##
#調(diào)度算法1:輪詢.每個請求按時間順序逐一分配到不同的后端服務(wù)器,
#如果后端某臺服務(wù)器宕機,故障系統(tǒng)被自動剔除,使用戶訪問不受影響
upstream webhost {
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}
#調(diào)度算法2:weight(權(quán)重).可以根據(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ù)器,可以進一步提高后端緩存服務(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(需安裝第三方插件).這是比上面兩個更加智能的負載均衡算法.
#此種算法可以依據(jù)頁面大小和加載時間長短智能地進行負載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時間來分配請求,
#響應(yīng)時間短的優(yōu)先分配.Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊
#虛擬主機的配置(采用調(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獲取用戶真實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; #高負荷下緩沖大?。╬roxy_buffers*2)
proxy_temp_file_write_size 64k;
#設(shè)定緩存文件夾大小,大于這個值,將從upstream服務(wù)器傳
}
}
}
配置 192.168.0.4(Nginx-Server)
創(chuàng)建文件夾準備存放配置文件
$ 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;
}
}
}
啟動負載均衡服務(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)容如下:
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)
創(chuàng)建文件夾用于存放web頁面
$ mkdir -p /opt/html
$ vim /opt/html/index.html
編輯內(nèi)容如下:
The host is 192.168.0.7 - Node 2
啟動192.168.0.7(Nginx-Node2/Nginx-Web2)
到此這篇關(guān)于Nginx配置之實現(xiàn)多臺服務(wù)器負載均衡的文章就介紹到這了,更多相關(guān)Nginx配置負載均衡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!