Apache-2.2
在不提供靜態內容(Django)的網站上使用反向代理的原因?
對於我正在開發的網站,我所有的靜態內容都託管在 S3/Cloudfront 的組合上。我一直在查看很多將 Django 應用程序部署到生產環境的教程,其中很多都推薦 Nginx(反向代理)+ Apache 的組合。這是在假設 Ngnix 將用於提供靜態內容並且 Apache 將完成所有繁重工作的假設下陳述的。當我沒有任何靜態內容可供服務時,還有其他理由需要反向代理嗎?或者在這種情況下,我可以簡化我的伺服器設置並只使用 Apache 嗎?
Nginx 也將對您的案例有所幫助。通常,與任何反向代理一樣,它有助於通過兩種主要技術更優化地利用伺服器資源:
- 正如您正確指出的那樣,它提供靜態內容,從而使重量級的 Web 伺服器免於執行此操作。
- 但它也解決了“慢客戶端”的問題,即那些使用慢連接(撥號或移動)的客戶端。由於 Apache 非常快地生成動態頁面,Nginx 獲取它,儲存到臨時文件並以客戶端的速度將其提供給客戶端(就像它提供靜態內容一樣),從而釋放 Apache 來處理另一個請求。