負載均衡

負載均衡

代理基礎概念:

  • 正向代理,由客戶端來使用,代理的近端爲用戶,對網站服務來講代理纔是直面的用戶,數據流從客戶端到服務
  • 反向代理,由網站服務使用,代理的近端爲網站,對於客戶端來講代理纔是直面的服務,數據流從服務到客戶端。反向代理能提升後端服務的安全性。

幾種負載均衡方案

  • DNS負載均衡
    實現:給域名添加多天A記錄(需域名服務商支持)
    優勢:簡單快捷,性能極高,沒有資源耗費
    缺點:權重不可設定、沒有故障切換、服務變動後瀏覽器在內的dns緩存生效問題nginx

  • 七層負載均衡
    實現:工做在應用層,包括 nginxHAProxyhttp反向代理
    優勢:故障切換、後端集羣高可用
    缺點:代理自身的單點問題後端

  • 四層負載均衡(IP負載均衡)
    實現:工做在網絡層/傳輸層,基於IP/內容請求分發,包括 lvs
    優勢:故障切換、高性能、高可用,比七層負載均衡性能更高
    缺點:搭建複雜瀏覽器

  • HTTP重定向負載均衡
    實現:302跳轉等,根據請求來源調度到對應服務器,可實現爲城市分站的負載均衡策略
    優勢:實現簡單
    缺點:url變更、體驗較差緩存

  • 硬件負載均衡
    實現:四/七層負載均衡硬件設備
    優勢:高性能、高可靠
    缺點:價格昂貴安全

基於nginx反向代理的負載均衡方案配置

http節區下添加以下配置服務器

proxy_connect_timeout 30;  #代理鏈接服務的超時
proxy_read_timeout 60;  #代理等待服務的超時
proxy_send_timeout 30;  #代理接收數據傳輸的超時

proxy_buffer_size 64k;  #代理緩衝區大小
proxy_buffers 4 64k;  #代理的緩衝區個數及最大值
proxy_busy_buffers_size 128k;  #代理在高壓時段可申請的最大緩衝區大小
proxy_temp_file_write_size 256k;  #代理的臨時寫文件大小

# 服務集羣配置
# 某臺服務器響應失敗則自動故障切換到另外一臺
upstream service_cluster1  #命名集羣
{
    # 權重根據具體服務器的資源狀況設定
    server 192.168.0.100:80 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.0.101:80 weight=2 max_fails=2 fail_timeout=30s;
}

# 虛擬主機配置
server
{
    server_name www.site.com;

    # 將全部請求反向代理到service_cluster1服務集羣
    location /
    {
        proxy_pass http://service_cluster1;

        proxy_buffering off;  # 禁用緩存,提升併發性能
        
        # 客戶端IP透明通過代理服務器傳遞給後端Web服務器
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 客戶端請求主機名透明通過代理服務器傳遞給後端Web服務器
        proxy_set_header Host $host;
    }
}
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息