Nginx清漆 Nginx Django?
我有一個 django 應用程序,我想在它前面的伺服器上設置 Varnish。在另一個 serverfault 執行緒中,有人建議將 Nginx 放在 Varnish 前面。
我應該把 Nginx 放在記憶體伺服器上的 Varnish 前面嗎?如果是這樣,我應該在應用伺服器上使用 Nginx 嗎?
我們說的是總共 1 到 3 台前端伺服器,而不是在層之間進行負載平衡的大型伺服器場?
將 nginx 放在 Vanish 前面可以讓您即時進行 HTTP 壓縮。這是性能最佳實踐,但可以省略。(Varnish 中的內容通常保持未壓縮,因此 ESI Includes 工作,因此您不必根據 Vary 標頭/瀏覽器匹配來處理同一對象的多個記憶體版本。)
關於應用伺服器上的 nginx —— Apache 與 mod_wsgi現在不是推薦和最常見的部署新 Django 安裝的方法嗎?我不知道在 Django 中使用 nginx/fastcgi 而不是 Apache/mod_wsgi 的令人信服的理由;但你應該從 Django 專家那裡得到建議。
關於 Varnish 具有 nginx 所沒有的有吸引力的負載平衡功能,我不明白它們是什麼?Varnish 具有隨機和循環平衡。nginx 具有循環、客戶端 IP 和一致的散列——我沒有看到 Varnish 有顯著的好處?是 VCL 或 Varnish 的優雅配置重新載入還是其他?
對於小型 1-3 伺服器設置,我想我會這樣做
清漆 –> Apache / mod_wsgi / Django
或許
魷魚 –> Apache / mod_wsgi / Django
並且為了簡單起見忽略 HTTP 壓縮,除非頻寬很昂貴。
更新:
Graham Dumpleton 在下面寫了一條有價值的評論。他提到了一個非常常見的設置,例如 VPS 上的部落格或沒有記憶體的小型網路農場:
nginx –> Apache / mod_wsgi / Django
這是一個非常好的解決方案,原因如下:
- 簡單的設置
- nginx 具有高速和最小成本,處理靜態文件服務和瀏覽器連接保持活動。
- Django 執行在 Graham Dumpleton 的優秀 mod_wsgi 中,這是 Django 的推薦平台。
我最初沒有提到這一點的原因是 OP 似乎需要 Varnish,這是一種非常高性能的記憶體解決方案。nginx / Apache / mod_wsgi 組合無法以與 Varnish 相匹配的性能和靈活性水平進行記憶體。