負載平衡原理
用戶端向反向代理程式發送請求,接著反向代理根據某種負載機制轉送請求至目標伺服器(這些伺服器都運行著相同的應用),並把獲得的內容返回給客戶端,期中,代理請求可能根據配置被發送到不同的伺服器。 (推薦學習:nginx教學)
#負載平衡配置
測試案例:
如下,分別在兩台伺服器(192.168.1.103, 192.168.1.102)上部署了相同的應用,並透過8080連接埠存取網站,如下
http://192.168.1.xx:8080/webautotest/xxxxxxx
同時在192.168. 1.103上安裝了nginx反向代理,想透過192.168.1.103的80埠來實現對兩個站點的存取
編輯nginx設定檔(例中為/usr/local/ngnix/conf/nginx. conf),找到http結點,如下,新增背景色部分的內容
#http { upstream myapp1 { server 192.168.1.103:8080; server 192.168.1.104:8080; } ……略 server { listen 80; server_name localhost; ……略 location /webautotest/ { proxy_buffering off; proxy_pass http://myapp1; } } }
重新載入設定檔
[root@localhost nginx-1.10.0]# /usr/local/ngnix/sbin/nginx -s reload
訪問測試url
如下,訪問相同的頁面,展示來自不同伺服器的頁面
說明:
負載平衡方法
nginx提供了以下三種負載平衡機制、方法:
round-robin — 請求以循環、輪轉的方式分發到應用程式伺服器。
least-connected — 下一個請求被指派到擁有最少活動連線數的伺服器
ip-hash — 使用一個雜湊函數,基於客戶端ip位址判斷下一個請求應該被分發到哪個伺服器。
預設的負載平衡配置
http { upstream myapp1 { server srv1.example.com; server srv2.example.com; server srv3.example.com; } server { listen 80; location / { proxy_pass http://myapp1; } } }
上例中,有3個應用實例分別運行在srv1-srv3。當不顯示指定負載平衡方法時,預設為round-robin。所有請求都被代理轉發至myapp1伺服器群組,並根據負載平衡方法來分發請求。
以上是nginx負載平衡原理怎麼口述的詳細內容。更多資訊請關注PHP中文網其他相關文章!