LNMP和Lamp在高並發情況下選擇哪個比較好,

來源:互聯網
上載者:User
看到一篇文章說apache最大承受並發數是三四千個,nginx是他的十倍,但是nginx的是基於緩衝等的實現,apache是實實在在的三四千個

回複內容:

看到一篇文章說apache最大承受並發數是三四千個,nginx是他的十倍,但是nginx的是基於緩衝等的實現,apache是實實在在的三四千個

不知道樓主所謂的實實在在指什麼,並發數、請求數、pv是不一樣的,單機apache並發數不可能達到34千,nginx也不能一概而論,說並發數是apache的十倍,nginx只是充當Proxy 伺服器的角色,真正處理php指令碼的是php-fpm,如果非要分一個好壞,nginx處理靜態檔案的能力要勝於與apache,apache畢竟是老牌的web伺服器相比之下穩定性高一些,還有就是記憶體的佔用、cpu的開銷這些都是要考慮的因素。

基本沒必要糾結這個,你先做到再說吧!
一般業務大家都使用nginx了.這個是標配,主要是為了以後擴充架構以提高訪問量方便.另外說apache穩定nginx不穩定實在是無從說起,沒這事兒.
正常情況下php業務瓶頸都在資料庫上面,至於php這邊用什麼都隨意了.
除非業務過於變態,或者本身程式寫的有問題,否則根本遇不到瓶頸.
能做到並發三四千,你自然有人有辦法解決.真到那天,你並發個幾萬都有解決方案.

Linux上Nginx跟PHP-FPM的組合很好.Nginx輕量,穩定,高效,跟PHP-FPM通過FastCGI進行網路通訊,松耦合.

Nginx負責處理所有的靜態資源,PHP-FPM則專心執行PHP指令碼,一個PHP-FPM被阻塞並不會導致Nginx被阻塞.一個PHP-FPM進程崩潰,PHP-FPM的主進程會自動重啟一個背景工作處理序,Nginx則可以配置fastcgi_next_upstream實現容錯移轉,切換到upstream中的另一套PHP-FPM服務.

PHP-FPM可以配置監聽不同連接埠的pool,不同的pool裡的背景工作處理序是互不影響的,可以把PHP-FPM不同的pool放到Nginx的upstream叢集.

Nginx從1.7.11加入了AIO線程池,能夠使用多線程讀取和傳送檔案,以免工人進程被阻塞.對於經過PHP認證身份後輸出的附件,PHP可以通過X-Accel-Redirect告訴Nginx檔案的路徑,讓Nginx利用它的AIO線程池讀取檔案並發送給瀏覽器,以免阻塞PHP進程.
header("X-Accel-Redirect: $filePath");
//對比下面直接通過PHP輸出檔案(PHP進程會被阻塞)
//readfile($filePath);

NGINX 1.9.1啟用reuseport完美解決驚群後,每秒處理的請求數提升了2到3倍,同時降低了延遲和stdev指標.
http://nginx.com/blog/socket-sharding-nginx-release-1-9-1/

比如你要開100個PHP背景工作處理序:
1.使用Apache + MOD_PHP則需要開啟100個httpd背景工作處理序,每個httpd背景工作處理序提供HTTP服務和PHP解析服務.
2.使用Nginx + PHP-FPM則可以開啟4個Nginx背景工作處理序(假設你的CPU核心數為4),和100個PHP-FPM進程,總共104個進程,但值得注意的是,100個PHP-FPM進程佔用的記憶體肯定要比100個httpd進程少,因為PHP-FPM不提供HTTP服務,也就是說Nginx + PHP-FPM比Apache + MOD_PHP能夠節省94套HTTP服務佔用的記憶體.
3.使用Nginx + Apache + MOD_PHP則是最耗記憶體的組合.

就簡單易用來說,中小網站直接部署Apache(prefork MPM)+MOD_PHP這種經典的組合也不錯.另外請注意,PHP官方不推薦在Linux上使用event這個線程化的Apache MPM來搭配MOD_PHP運行,詳情請看:
http://www.php.net/manual/zh/faq.installation.php#faq.installation.apa...

我推薦 nginx.
nginx 配置相當靈活,說實話,自從用了 nginx, apache 我就沒用過了.

我們公司用的也是 nginx .

首先nginx不處理php動態網頁面,說它高並發NB,是指處理靜態頁面。nginx要處理真正的php請求,還需要一樣東西:fastcgi,它是另外的一個服務,nginx遇到php都會轉給它來處理。其次,apache可以通過mod得形式來把php載入到自身系統中,所以無論是靜態頁面還是php都是自己處理的。當然啦,apache也可以像nginx那樣通過fastcgi來處理php請求,而且很多公司就是這麼乾的,這樣的話並發量和nginx不相上下。至於apache使用mod還是fastcgi形式,取決於你自身業務的特點。靜態還是動態,高穩定還是高並發。處理動態內容的瓶頸不是在apache或nginx上,是在php解譯器上。想追求高並發,就去做伺服器叢集吧,這是最實在的。

如果是網站的話,為什麼不在NginxApache之上加一個Varnish呢?

還有,Nginx的十倍應該說的是靜態頁面。如果是動態話,兩者應該相差不多。

趨勢是使用nginx,我呆過的幾個公司都從apache轉nginx了

目前我們用的是LANMP,Nginx + Apache,前端用Nginx,PHP指令碼反向 Proxy給Apache去處理!

nginx是反向 Proxy的,而apache不是,apache 比nginx穩定,還是建議使用apache.

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.