基於滴滴雲DC2+Nginx搭建負載均衡方案
Nginx是一款輕量級、高效能的Web伺服器,專為高流量應用場景而設計。
本文主要介紹它的健康檢查和負載均衡機制。健康檢查和負載均衡是相輔相成,健康檢查能夠及時標記出服務異常的後端RS,使得資料面負載到可用的RS上,提高系統的可靠性和高可用。
Nginx支援豐富的第三方模組,這裡示例以ngx_http_upstream_round_robin(簡稱RR)做為負載均衡模組,以ngx_http_proxy_module(檢查proxy)作為後端代理模組。
健康檢查有兩種方式:
1)ngx_http_proxy_module模組和ngx_http_upstream_module模組(這是Nginx自帶模組)
2)nginx_upstream_check_module模組(淘寶技術團隊開發)
Nginx的upstream目前支援5種方式的負載演算法:
-
輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除
-
weight
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況
-
ip_hash
每個請求按訪問ip的hash結果分配,每個訪客固定訪問一個後端伺服器,可以解決session的問題
-
fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配
-
url_hash(第三方)
按訪問url的hash結果來分配請求,使每個url定向到同一個後端伺服器,後端伺服器為快取時比較有效
部署步驟
在滴滴雲官網,可以申請多個DC2例項,節省費用:
場景說明
比如,這裡示例四個滴滴雲DC2例項分別為:10.255.10.12(Client)、10.255.44.122(Nginx Proxy)、10.255.15.111(RS1)、10.255.24.133(RS2),這裡的滴滴雲DC2例項需要處在同一個VPC即可,不必同一子網。
配置Nginx負載均衡和健康檢查功能
透過yum install nginx就可以在DC2例項內安裝Nginx服務,Nginx預設是以 conf/nginx.conf作為啟動配置的,我們可以根據自己的需求在nginx.conf(預設路徑是/etc/nginx/nginx.conf)中配置負載均衡和健康檢查。
nginx.conf內容如下(Note:以下所有配置僅僅為測試所用,不代表線上環境真實所用,真正的線上環境需要更多配置和最佳化):
修改配置檔案後,nginx -s reload平滑重啟Nginx,即可生效。
ngx_http_upstream_check_module
該模組可以為Tengine提供主動式後端伺服器健康檢查的功能,該模組在Tengine-1.4.0版本以前沒有預設開啟,它可以在配置編譯選項的時候開啟:./configure --with-http_upstream_check_module
透過curl ,檢視健康檢查狀態:
小結:
滴滴云為使用者提供了SLB,給使用者提供了高可用和高可靠性的負載均衡產品,使用者也可以自己選擇使用Nginx搭建自定義的網路,Nginx提供了豐富的第三方模組,部署靈活,基於DC2+Nginx搭建負載均衡網路也是不錯的選擇。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2219923/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於滴滴雲部署 HAProxy 實現 7 層和 4 層負載均衡負載
- 基於滴滴雲搭建 Lustre
- windows第七層負載均衡 基於IIS的ARR負載均衡詳解Windows負載
- mysql負載均衡搭建(haproxy)MySql負載
- 全域性負載均衡方案負載
- windows伺服器第四層負載均衡_基於NLB負載均衡詳解Windows伺服器負載
- 基於 CentOS 7 + Nginx + Tomcat 的負載均衡伺服器的搭建CentOSNginxTomcat負載伺服器
- 淺析基於雲的DNS管理與負載均衡技術DNS負載
- 基於滴滴雲搭建微信小程式微信小程式
- Docker Swarm :gRPC 基於 DNS 的負載均衡DockerSwarmRPCDNS負載
- nginx部署基於http負載均衡器NginxHTTP負載
- 負載均衡簡介與搭建負載
- 基於滴滴雲搭建 Ceph 開發環境開發環境
- Nginx多種負載均衡策略搭建Nginx負載
- 阿里雲負載均衡筆記阿里負載筆記
- 基於滴滴雲伺服器搭建 Consul 叢集伺服器
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- Haproxy搭建 Web 群集實現負載均衡Web負載
- 簡單實踐搭建 nginx 負載均衡Nginx負載
- 負載均衡負載
- 詳解基於Centos7+Nginx+Tomcat8的負載均衡伺服器的搭建CentOSNginxTomcat負載伺服器
- 基於開源Tars的動態負載均衡實踐負載
- 微服務架構 | 4.1 基於 Ribbon 的負載均衡詳解微服務架構負載
- 基於MySQL Cluster + LVS + KeepAlived部署負載均衡高可用架構MySql負載架構
- nginx負載均衡Nginx負載
- LVS 負載均衡負載
- 【Nginx】負載均衡Nginx負載
- NGINX 負載均衡Nginx負載
- LoadBalancer負載均衡負載
- IP負載均衡負載
- WebSocket負載均衡Web負載
- 負載均衡---ribbon負載
- 基於滴滴雲虛擬機器的TensorFlow搭建與使用虛擬機
- 基於滴滴雲 DC2 搭建 VPP 應用例項
- 基於滴滴雲 CentOS 伺服器搭建 Nexus Maven 私庫CentOS伺服器Maven
- 基於滴滴雲搭建輕量文件網站生成工具 Docsify網站
- 解密負載均衡技術和負載均衡演算法解密負載演算法