Nginx
當虛擬主機有太多連接時生成新 EC2 伺服器的策略
我正在 EC2 上建構一個基礎設施,在其中我有 nginx 作為 apache+php 伺服器前面的負載均衡器。每個 apache 伺服器都有一些虛擬主機。
我正在考慮當虛擬主機處理太多請求時擴展的最佳方式。
我想我可以限制每個虛擬主機的連接數,比如 100,然後當連接數超過 100 時,我創建一個新實例(使用 ruby 和霧 gem)並在該實例上配置另一個虛擬主機,添加另一個後端具有新實例 IP 的 nginx 平衡器。
這是要走的路,還是您有什麼建議?
當您橫向擴展物理硬體時,這與平衡行為一樣多。它可能無助於固定一個指標來決定何時產生新實例。
100 個連接的任意限制可能遠小於實例真正能夠處理的能力,因此您將超支計算能力。另一方面,您的實例可能會在達到該點之前在 RAM/CPU 或 I/O 上阻塞。
您應該看看 AWS 自動擴展。這將允許您設置策略,這些策略將在指定的硬限制內並基於大量 Cloud Watch 指標自動擴展和收縮您的計算集群。您需要使用 API 設置適當的策略,然後根據負載和預算要求觀察和調整它們。