nginx負載均衡
實現負載均衡主要模組
反向**
反向**指的是以**伺服器接收使用者的的訪問請求,**使用者向內部伺服器重新發起請求,最後把內部伺服器的響應資訊返回給使用者。
為什麼使用反向**
#**要訪問的伺服器位址
proxy_set_header host $host;這個不是很好理解,先要理解http1.0和1.1版本區別
而nginx**是不會新增頭部host資訊的,那麼可能就會遇到錯誤400,或者只能訪問到預設server上的情況出現
proxy_set_header host $host; #就是增加這個頭部host資訊$http_host:保留原有頭部host資訊(就是不改變任何資訊)
$host:頭部host資訊改為server_name
$proxy_host:頭部host資訊改為proxy_pass後面的資訊
#匹配規則就是server的匹配順序,先ip後server_name
proxy_set_header x-real-ip $remote_addr;upstream的模組ngx_http_upstream_module模組支援的**方式有proxy_pass,fastcgi_pass等,主要使用proxy_pass。#獲取跟本伺服器建立tcp的ip(可能是nginx**或者是真實使用者ip)
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
#通過記錄完整的**鏈路識別到真實使用者ip
#x-real-ip和x-forwarded-for參考
upstream模組允許nginx定義一組或多組節點伺服器組,使用時通過proxy_pass**把**的請求傳送到定義好的對應的節點組中。(反向**中proxy_pass後面url被upstream成定義伺服器組)
upstream排程演算法(參考)
靜態排程演算法:
rr輪詢(預設排程演算法) -------- 順序分配逐一請求
wrr權重輪詢演算法---------weight=2,**2次
ip_hash--------相同的ip固定**到一台伺服器上
動態排程演算法:(第三方外掛程式,需要安裝支援模組)
fair排程演算法------------ 響應時間短的優先分配
least_conn-----------連線請求少的優先分配
nginx負載均衡排程狀態
max_fails+fail_timeout max_fails就可以實現nginx的後端檢測功能,但是都是基於連線探測的#如果發現後端異常,在單位週期為fail_timeout設定的時間中失敗次數達到max_fails次,這個週期次數內,如果後端同乙個節點不可用,那麼就將把節點標記為不可用,並等待下乙個週期(同樣時長為fail_timeout)再一次去請求,判斷是否連線是否成功,如果一台伺服器down後,會出現預設10s一次超時的問題,但是能確保使用
格式:【server】【ip:埠或url】【狀態】(預設不寫為rr輪詢)
upstream test
# test 為節點伺服器組的名字,必須有,可自定義名字,使用者**設定:proxy_pass http://test (這邊就由upstream**了)
proxy_headers_hash_max_size(預設512)和proxy_headers_hash_bucket_size(預設64)
http
設定nginx儲存http報文頭的hash表的上限,值要大於upstream test組下總和,通過hash頭部資訊來達到快速訪問(通過key/value鍵值對)Nginx負載均衡配置說明
upstream塊定義了乙個上游伺服器的集群,便於反向 中的proxy pass使用。upstream t02 location t02 負載均衡策略 1 輪詢 預設 每個請求按照時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,則系統自動剔除 2 指定權重。指定輪詢概率,weight和...
nginx負載均衡配置
curl nginx upstream fair.zip unzip nginx upstream fair.zip cd nginx 1.6.2 檢視當前nginx 編譯引數 nginx v 輸出 configure arguments prefix usr local nginx configu...
Nginx負載均衡配置
負載均衡是我們大流量 要做的乙個東西,下面我來給大家介紹在nginx伺服器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。負載均衡 先來簡單了解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。那麼負載均衡的前提就是...