使用說明
nginx負載均衡需要使用 stream 模塊,支持 HTTP 與 TCP 服務。
此處僅說明負載均衡的配置結構,具體參數請自行查閱相關資料。
Nginx負載均衡策略
nginx自有策略
- 輪詢 (默認)
- 權重 (weight)
- IP地址哈希 (ip_hash)
- 最小連接數 (least_conn)
第三方策略(安裝 upstream_fair 模塊)
- 最快響應速度 (fair)
- 請求地址哈希 (url_hash)
HTTP負載均衡結構
worker_processes 4; events { worker_connections 1024; } http { upstream myhttp { server srv1.example.com:port; server srv2.example.com:port; server srv3.example.com:port; } server { listen 80; location / { proxy_pass http://myhttp; } } }
TCP負載均衡結構
worker_processes 4; events { worker_connections 1024; } stream { upstream mytcp { server srv1.example.com:port; server srv2.example.com:port; server srv3.example.com:port; } server { listen 80; proxy_pass mytcp; } }
特別事項
- TCP的 stream 模塊與HTTP的 http 模塊配置在同級別,即第一層級,沒有嵌套關系
- stream與http屬于完全不同的模塊,沒有相互關系
- stream與http模塊都支持 upstream 負載均衡模塊
關于常見負載均衡方案對比
DNS負載均衡常用于地域級別的均衡,即根據用戶請求的IP所屬地區,將請求轉發到相應的服務器IP。
軟件(Nginx,LVS)和硬件(F5)的最主要區別就在于性能,硬件負載均衡性能遠遠高于軟件負載均衡性能。
Nginx 的性能是萬級,一般的 Linux 服務器上裝一個 Nginx 大概能到 5 萬 / 秒;
LVS 的性能是十萬級,據說可達到 80 萬 / 秒;
而 F5 性能是百萬級,從 200 萬 / 秒到 800 萬 / 秒都有(數據來源網絡,僅供參考,如需采用請根據實際業務場景進行性能測試)。
當然,軟件負載均衡的最大優勢是便宜,購買一臺服務器即可。
常見的負載均衡機制:DNS 負載均衡、硬件負載均衡、軟件負載均衡,每種方式都有一些優缺點,但并不意味著在實際應用中只能基于它們的優缺點進行非此即彼的選擇,反而是基于它們的優缺點進行組合使用。具體來說,組合的基本原則為:DNS 負載均衡用于實現地理級別的負載均衡;硬件負載均衡用于實現集群級別的負載均衡;軟件負載均衡用于實現機器級別的負載均衡。
浙公網安備 33010602011771號