2011-07-28 35 views
1

我目前正在研究一項服務,該服務將允許用戶在他們的網站上放置一個腳本文件(javascript),該腳本文件將從我的http服務器加載,在那裏爲我可以期待處理大量的http請求。此外,JavaScript文件是使用PHP生成的(它必須是動態的,我不能改變它 - 所以我使用PHP來生成它)。多個請求的最佳http服務器解決方案+ php解釋

由於我的一些客戶可能每天擁有50-60k位訪問者的網站,我預計每天至少有1-2百萬個請求。

所以..回到我的問題。 很明顯,我不能使用Apache httpd(MPM prefork模塊)+ php,因爲每個進程都吃了17-18 MB的RAM,我的內存不是無限的。

到目前爲止,Apache httpd(MPM工作模塊)+ php不能很好地工作,因爲即使他們聲稱它是(搜索谷歌以查看更多信息),它仍然不確定是否php是線程安全的。

所以..我想使用的:

  1. 的httpd(MPM工人模塊)+ PHP + FastCGI的 或
  2. 的nginx + PHP + factscgi

坦率地說我」我聽說nginx對靜態頁面很有用,這就是爲什麼我想問你是否在大量請求中使用php + fascgi。是否應該像使用apache httpd一樣具有相同的內存問題,但這次內存是由fastcgi創建的?

你認爲我應該選擇什麼:1或2?或者你有其他解決方案?

謝謝

回答

1

你應該做的第一件事就是測試你的服務器。

第二件事是檢查你的瓶頸是什麼(PHP,數據庫,CPU使用率,內存,磁盤訪問等),所以你知道該怎麼工作。

然後,你可以打擾試圖找到解決問題的辦法。如果它主要是php,你是否使用了一些緩存並且配置合理?如果它是你的數據庫,你能否改變它的架構來讓它更好。如果它是您的服務器,請檢查nginx,lighttpd或具有更好設置的apache或其組合是否可以完成這項工作。

+0

@Doua Beri - 我同意Arkh,我的公司每天用PHP運行數百萬個請求,我不明白爲什麼你不能。首先運行軟件並運行,然後進行分析。 – afuzzyllama