路飛學城Python-Day182

Evernote Export nginx

集羣介紹
1.集羣介紹
集羣:將多個物理機器組成一個邏輯計算機,實現負載和容錯
計算機集羣簡稱集羣,是一種計算機系統,它經過一組鬆散集成的計算機軟件或硬件鏈接起來高度緊密地完成計算工做,在某種意義上,他們能夠被看作是一臺計算機。
組成要素
1.VIP:一個IP地址
2.分發器:nginx
3.數據服務器:Web服務器
傳統web訪問模型
用戶發起請求
服務器接收請求
服務器處理請求(壓力最大)
服務器響應請求
缺點:
單點故障
單臺服務器資源有限
單臺服務器處理耗時長

單點服務器的解決辦法:
1.部署一臺備份服務器,宕機直接切換
服務器利用率低,成本高,切換不及時,服務器壓力依然大
2.部署多臺服務器,根據DNS的輪詢解析機制去實現用戶分發
優點是用戶處理速度獲得了提高,可是其中一臺有故障就會有一部分用戶訪問不了
3.使用DNS輪詢方案
4.多級陣列-集羣模式

2.Nginx集羣原理
在該集羣中Nginx扮演的角色是分發器
任務:接受請求、分發請求、響應請求
功能模塊:
1.ngx_http_upstream_moudle  基於應用層分發
2.ngx_stream_core_moudle 基於傳輸層分發模塊
Nginx集羣實際上是:虛擬主機+反向代理+upstream分發模塊組成
虛擬主機:接受和響應請求
反向代理:帶用戶去數據服務器拿數據
upstream:告訴Nginx去哪一個數據服務器拿數據
數據走向:
虛擬主機接受用戶請求
虛擬主機去找反向代理
反向代理讓去找upstream
upstream告訴一個數據服務器IP
Nginx去找數據服務器併發起請求
數據服務器接收並處理請求
數據服務器響應請求給nginx
nginx響應請求給用戶
3.實現基於Nginx分發器的web集羣
Nginx安裝
配置業務服務器頁面
配置nginx分發器
測試分發
nginx集羣默認算法
upstream module 
nginx的upstream目前支持4種方式的分配
1.輪詢(默認)
每一個請求按時間順序逐一分配到不一樣的後端服務器,若是後端服務器down掉,能自動剔除
2.weight
指定輪詢概率,weight和訪問比率成正比,用戶後端服務器性能不均的狀況
3.ip_hash
每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器,能夠解決session問題
4.fair(第三方)
按後端服務器的響應時間來分配請求,響應時間段的優先分配
5.url_hash(第三方)
按訪問url的結果來分配請求,使每一個url定向到同一個後端服務器,後端爲緩存時比較有效。
每一個設備的狀態設置
1.down表示當前的server暫時不參與負載
2.weight默認爲1.weight越大,負載的權重就越大
3.max_fails:容許請求失敗的次數默認爲1,1.當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤
4.fail_timeout:失敗超時時間,在鏈接server時,若是在超時時間以內超過max_fails指定的失敗次數,會認爲在fail_timeout時間內server不可用,默認爲10s
5.backup:其餘全部的非backup機器down或者忙的時候,請求backup機器,因此這臺機器壓力會最輕
4.測試
相關文章
相關標籤/搜索