2010-03-22 81 views
4

我很好奇...我正在尋找一個真正有效的安裝程序,用於客戶端的切片。我不是服務器方面的專家,所以我一直在尋找優秀的可靠資源來幫助我設置這個方案...向我推薦使用FastCGI for PHP,用於Django和Nginx的Green Unicorn(gunicorn)用於媒體是一件好事讓PHP和Django在同一個片/服務器上運行。這是必需的,因爲有一個主Django網站和管理員,但也有一個PHP論壇。PHP和Django:Nginx,FastCGI和綠色獨角獸?

任何人都可以將我推向一些有用的資源,這將有助於我將其設置在我的切片上嗎?或者至少,在這個特定的設置上的任何意見或評論?

+0

你不想做那個伴侶。你想要做的是在帶有威士忌接口的mod_proxy設置後面運行Green Unicorn。 – Dan 2010-03-23 09:25:16

+0

什麼是威士忌?我在網上找不到任何對它的引用 – 2011-03-31 10:24:25

回答

2

我認爲一個解決辦法是使用PHP的組合作爲Apache模塊或通過FastCGI的,並使用mod_proxy的Apache模塊做一些反向代理來訪問你的管理應用與gunicorn

運行時,您可以有一個設置,如:在端口80

  • 接待HTTP服務器的Apache:另一個端口www.host.com:80
  • 後端HTTP服務器gunicorn:other.host.com:8080或本地主機:8080的mod_proxy和URL像公共訪問www.host.com/admin/
  • 媒體HTTP服務器:media.host.com,如果它必須在同一個系統上,您可以使用mod_proxy並在另一個TCP端口上運行NGINX服務器。

請注意,您應該無法獲得NGINX作爲隱藏在帶有mod_proxy的apache後面的媒體服務器的最佳性能。

這部分設置依賴於在此片上擁有多個公有IP地址的可能性。

-1

對於PHP部分,考慮安裝任何PHP加速器,如eAccelerator或任何other字節碼緩存。
This是一個更一般的文章,但也可以爲你interessting。
對於Django的一部分我不知道/經驗。

+0

aa字節碼緩存對於PHP來說並不是他的問題的解決方案,他想讓php和django在同一個主機上工作。 – Benoit 2010-03-22 13:26:51

+0

引用這個問題:「我正在尋找一個非常高效的設置......」因此我會安裝一個字節碼緩存...... ;-) – TheHippo 2010-03-22 16:19:49

-1

我一直試圖在nginx with WSGI module後面運行django。它運行良好,速度非常快。 你必須編譯你自己的nginx,但它確實很無痛。

+0

這裏的問題在於nginx wsgi模塊與apache完全不同一。特別是,nginx是一個單一的進程服務器,所以如果wsgi應用程序阻塞,那麼整個服務器就會阻塞它。它不受支持。如果你是格雷厄姆·杜姆普爾頓的谷歌,他的評論對於這個設置的問題很有啓發。爲了節省時間,我這樣做了: http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html 這就是爲什麼這個答案既不是最佳實踐也不是回答這個問題。 – chiggsy 2010-09-04 00:02:13

1

我發現這個問題,幾乎走下了自己使用綠色獨角獸的道路。請注意,uWSGI似乎比Green Unicorn具有更好的性能,請參閱set of benchmarks here

Linode有一個great howto用於在Ubuntu上配置nginx的uWSGI(它也可以在Debian上正常工作)。

我現在正在使用這個設置,並且非常滿意它。