2012-12-29 168 views
1

我對Nginx配合Unicorn配置有很好的體驗,經過優化和調優程序後,它的效果非常好。但是現在我有一個問題,用Unicorns在多臺機器上傳播負載的最佳方式是什麼。獨角獸多機設置

問題是你有3臺機器(Nginx負載均衡器,2個APP服務器和Unicorns),你如何管理Unicorns負載均衡和靜態資產服務。

你現在是否有與TCP連接到Unicorn的任何缺點(超時,連接丟失),是否有其他方式通過網絡上游套接字連接(可能通過SSH進行端口轉發)?獨角獸的設計是無國籍的,但你如何管理邊緣案例?

我不想爲平衡器節點提供靜態服務,那麼可以在每個APP服務器上設置Nginx並在它們前面設置啞巴的Nginx平衡器嗎?

P.S.我目前的配置已經過很好的測試,可以在Github上找到,但是在同一臺機器上使用Nginx + Unicorn進行設置已經成爲瓶頸。

UPDATE:開發嚴格依賴於特定的服務器配置。瓶頸將會發生,不僅僅是因爲開發者的決定,而且還因爲他運行它的環境。 Stackoverlow已滿,並且高度標記Q & A與有關特定配置的難以瞭解的詳細信息有關。 Alex在下面回答了Github的工作,我非常感謝這位合格人員的回覆!

+0

可能上傳靜態資產到CDN和TCP連接到Unicorns是最好的解決方案? – Anatoly

回答

1

請勿通過TCP /網絡訪問Unicorns。

你的設置似乎就好了,你可以簡單地在應用服務器的前面添加負載平衡器,但我會建議Keepalived(LVS FTW)爲負載均衡,而不是Nginx的。

您可以通過套接字讓它們與運行Nginx + Unicorns的APP服務器的連接達到平衡。

+1

爲什麼不通過TCP訪問它們?我已經這麼做了很多年了,沒關係。 Nginx智能檢測機器何時停止並停止路由一段時間,然後再次嘗試。負載平衡可以更聰明,但聽起來像keepalived不會做基於負載的平衡...... – Kevin