Apache-2.2
Varnish -> Nginx -> Apache 一個好主意?
我正在考慮新 Web 伺服器的架構。將 Varnish 作為 Nginx 前面的記憶體作為反向代理並在 apache 前面為所有繁重的工作提供靜態文件是一個好主意嗎?
我將在 Rails 應用程序上執行 php 和 ruby。
通過另外兩個程序將 php 請求傳遞給 apache 會不會有太多成本?
非常感謝!
是的,它是有效的。我個人的方法是預先使用 Varnish 並使用 VCL 在靜態 NGINX 請求和繁重的工作之間分配流量(無論是 Apache 還是Passenger,或者……沒關係)。如果它位於不需要額外成本的同一台機器上,則尤其如此。它不一定給你買任何東西。
Varnish (尚)不支持 gzip 壓縮,因此最好將其與前面的 nginx 交換以壓縮 varnish 發回的內容。由於 varnish 和 nginx 不會爭奪相同的資源(nginx 使用 CPU 進行 gzip 壓縮,而 varnish 使用記憶體)它們應該在同一台機器上順利執行。
Varnish 現在支持 gzip 壓縮,所以除非您需要 SSL 終止(如評論中所建議的那樣),否則我建議將 varnish 直接與 Internet 聯繫。
對於 http:
(網際網路)-->(清漆、gzip、記憶體、esi)-->(應用程序)
對於 https:
(網際網路)-->(nginx,ssl)-->(清漆,gzip,記憶體,esi)-->(應用程序)
如果你也想要 apache(為了無處不在的 mod_foobar 支持),我會把它放在 varnish 和應用程序之間
**更新:**更新以在 varnish 3.0 中包含 gzip 支持。按照評論中的建議添加了 ssl / esi