Apache-2.2

如何將 wsgi django/python 應用程序伺服器與 Web 伺服器分開?

  • May 8, 2014

我建構了一個 django / python 應用程序,在 apache 上執行 wsgi,並託管在單個亞馬遜 AWS EC2 實例上。

它是一個自定義客戶端應用程序,流量很低,但我的應用程序的一部分會生成報告,這需要更多的馬力,所以我想添加一個傳入的 Web 伺服器,它查看我的請求並將它們發送到兩個中的一個應用伺服器。

我猜這不完全是負載平衡,因為我想將生成文件的請求與其他請求不同。所以我設想一台機器上的apache,另一台機器上的django……

但是人們是怎麼做到的呢?

  • 我是否在查看請求的 Web 伺服器上執行基於 wsgi 的 django 應用程序,然後將其轉發到另一台使用基於 wsgi 的 django 應用程序執行 apache 的機器?
  • 或者是否有一些 apache mod 轉發來自 web 伺服器的請求,然後應用程序作為沒有 apache 的獨立 django 伺服器執行?
  • 或者可以配置負載均衡器(如亞馬遜的彈性負載均衡器)來執行此操作嗎?

我一直無法找到這方面的文件 - 有什麼特別值得我尋找的嗎?

顯然我正在尋找的是具有此功能的 FastCGI。在 django 書的第 21 章:部署 Django中找到了答案,其中說:

FastCGI 是一種讓外部應用程序向 Web 伺服器提供頁面的有效方法。Web 伺服器將傳入的 Web 請求(通過套接字)委託給 FastCGI,FastCGI 執行程式碼並將響應傳遞回 Web 伺服器,Web 伺服器又將其傳遞回客戶端的 Web 瀏覽器。

這些文件還解釋瞭如何將 Django 與 FastCGI、SCGI 或 AJP 一起使用。看起來我可以很容易地修改請求路徑並將它們路由到不同的實例。

引用自:https://serverfault.com/questions/290284