Nginx(三):负载均衡策略 与 Nginx静态服务器
?
相關閱讀:
Nginx(一):Nginx原理概述 與 安裝步驟詳解
Nginx(二):反向代理原理 與 配置文件詳解
Nginx(三):負載均衡策略 與 Nginx靜態服務器
Nginx(四):Nginx配置實戰
?
Nginx使用最多的三個核心功能是反向代理、負載均衡和靜態服務器。在前面的博客中,我們已經介紹過Nginx的反向代理功能能,這篇博客主要介紹nginx的負載均衡策略,以及作為靜態服務器的使用。
所謂負載均衡,?負載均衡即是代理服務器將接收的請求均衡的分發到各服務器。負載均衡主要解決網絡擁塞問題,提高服務器響應速度,服務就近提供,達到更好的訪問質量,減少后臺服務器大并發壓力。
?
一、Nginx的負載均衡策略:
1、加權輪詢算法(默認):
按照接收的請求順序 逐一分配到不同的后端服務器,即使在使用的過程中,某一臺后端服務器宕機,nginx會自動將該后端服務器剔除,請求受理情況不會受到任何影響。存在session丟失的問題。
upstream backserver {?
server 192.168.0.14;?
server 192.168.0.15;?
}?
在這種方式下,可以給不同的后端服務器設置權重值weight,用于調整不同的服務器上的請求的分配率;權重數據越大,被分配到的請求的幾率越大;適合用于后端服務器性能不均衡的情況。
upstream backserver {?
server 192.168.0.14 weight=10;?
server 192.168.0.15 weight=10;?
}?
2、與IP地址綁定 ip_hash:
每個請求 按照 發起請求的客戶端的ip的hash結果進行分配,在這種算法下,每個ip請求都會訪問到一個固定的后端服務器。可以再一定程度上解決集群部署環境下session共享的問題。
upstream backserver {?
ip_hash;?
server 192.168.0.14:88;?
server 192.168.0.15:80;?
}?
3、fair智能調整算法:
智能調整調度算法,動態根據后端服務器處理請求的響應時間進行均衡分配,響應時間短處理效率高的服務器 分配到請求的概率高,響應時間長處理效率低的服務器分配到請求的概率低。nginx本身不支持fair算法,需要安裝upstream_fair模塊。
upstream backserver {?
server server1;?
server server2;?
fair;?
}?
4、url_hash:
按照訪問的url 的hash結果分配請求,每個請求的url都會指向后端固定的某臺服務器。在nginx作為靜態服務器的情況下 可以提高后端服務器的緩存效率。nginx默認不支持這種調度算法,要使用的話需要安裝nginx的hash軟件包。
upstream backserver {?
server squid1:3128;?
server squid2:3128;?
hash $request_uri;?
hash_method crc32;?
}?
?
二、Upstream支持的狀態參數:
在Nginx的Upstream模塊中,除了可以通過server指定到特定服務器和端口,還可以設置服務器在負載均衡中的狀態。目前的狀態如下:
1、down:代表當前的服務器server不參與負載均衡。
2、backup:預留的備用設備,也就是當其它的服務器故障或忙時才會分配它給客戶請求,所以它的壓力最小。
3、max_fails:服務器server允許請求失敗的次數,默認為1次,當失敗次數超過限定的次數,就會返回proxy_next_upstream錯誤信息。
4、fail_timeout:當經歷了max_fails的次數后,暫停服務的時間,一般與max_fails配合使用。
注意:
當服務器的調度算法為ip_hash時,服務器在負載均衡中的狀態不能是weight和backup。
?
三、搭建nginx靜態文件服務器:
本部分內容基于Centos7系統。
(1)進入配置文件目錄:
cd /usr/local/nginx/conf/
(2)在nginx的默認配置文件中進行配置:
vim nginx.conf
需要把nginx的根目錄指向上傳文件的目錄:按下面代碼修改root的目錄路徑,然后保存退出。
?server {
? ? ? ? listen ? ? ? 80;
? ? ? ? server_name ?localhost;
? ? ? ? #charset koi8-r;
? ? ? ? #access_log ?logs/host.access.log ?main;
? ? ? ? location / {
? ? ? ? ? ? root ? /home/servicemarketpic/serviceMarket;
? ? ? ? ? ? index ?index.html index.htm;
? ? ? ? }
(3)重新加載nginx配置文件:
?./nginx -s reload
?
?
參考博客:https://blog.csdn.net/why_2012_gogo/article/details/50967520?
總結
以上是生活随笔為你收集整理的Nginx(三):负载均衡策略 与 Nginx静态服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx(二):反向代理原理 与 配置
- 下一篇: Nginx(四):Nginx配置实战