nginx是如何實現負載均衡的,nginx的upstream目前支援以下幾種方式的分配:
1、輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
2、weight
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。
2、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。
3、fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
4、url_hash(第三方)
按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取時比較有效。
一、準備環境如下:
1、我們配置四個nginx的虛擬主機,分別如下:
www.site.com
127.0.0.1:8081
127.0.0.1:8082
127.0.0.1:8083
site1.conf的配置如下:
server
#在http中加入fastcgi_intercept_errors on;
#配置404資訊
error_page 404 /404.html;
#配置500資訊
error_page 500 502 503 504 /50x.html;
#快取資源
#快取js、css資源
location ~ .*\.(js|css)$
#對php的支援
location ~ \.php$
}
site2.conf和site3.conf的配置同site1.conf,只是埠、日誌檔案和目錄位址需要修改。
2、三個站點下分別建立index.html,方便檢視訪問了哪個虛擬主機
我是站點一
二、配置好上述三颱虛擬主機後,我們需要在nginx.conf的http{}節點中設定upstream
#注意這裡的myserver,可自定義
upstream myserver
三、在需要負載的虛擬主機配置檔案中新增
修改後的site.conf檔案如下:
server
}
四、我們重啟nginx,通過瀏覽器訪問www.site.com。
我們重新整理瀏覽器,可以看到,**出現的內容,會隨著你的重新整理,輪詢顯示站點一,站點二,站點三。
五、upstream中的配置
upstream myserver
weight預設為1,weight越大,負載的權重就越大。
upstream myserver
down表示當前的server暫時不參與負載
upstream myserver
backup其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。
upstream myserver
max_fails允許請求失敗的次數預設為1,當超過最大次數時返回proxy_next_upstream 模組定義的錯誤
fail_timeout當max_fails 次失敗後,暫停的時間。
Nginx配置upstream實現負載均衡
今天來實踐一下upstream的應用,環境如下 名稱server1 nginx server2 apache php sever3 apache php server4 nginx php ip192.168.10.3 192.168.10.4 192.168.10.5 192.168.10.6 目...
Nginx使用upstream實現負載均衡
upstream模組相關說明 1 upstream模組應放於nginx.conf配置的http 標籤內 2 upstream模組預設演算法是wrr 權重輪詢 weighted round robin 一 分配方式 nginx的upstream支援5種分配方式,下面將會詳細介紹,其中前三種為nginx...
Nginx簡介及使用Nginx實現負載均衡的原理
nginx 這個輕量級 高效能的 web server 主要可以幹兩件事情 直接作為http server 代替apache,對php需要fastcgi處理器支援 另外乙個功能就是作為反向 伺服器實現負載均衡 1 環境 a.我們本地是windows系統,然後使用virutalbox安裝乙個虛擬的li...