nginx 是一個代理服務器,其做用是把客戶端請求轉發給服務,而後直接輸出服務的響應內容。
php 做爲很是通用的web 服務端腳本語言,具備很是高性能的處理速度。
如今最流行的web服務器搭建環境 採用的是 linux 操做系統 ,配置一臺nginx 代理服務器,而後代理服務器把客戶端請求 轉發到 php 。php 程序運行後把結果返回給nginx 輸出給客戶端。
當 然,nginx 代理服務器 要和php 配合工做,中間須要一個 php-fpm ,php-fpm是 一個php 的 fastcgi進程管理器。fastCGI 能高效管理php-CGI的內存和進程網問題,而php-CGI是 php實現 CGI全部功能的一個模塊。實現了CGI 功能的程序,都能提供 web服務。因此,php能做爲web服務端語言。
php- fpm既然 是一個 進程管理器, 負責php的多線程工做。 自己php 語言是單線程,或者是沒有線程這一說法。 php-fpm能夠 同時管理多個php運行實例,這樣就能有效提升了服務器的處理性能,處理大訪問量的時候,就能夠同時發起多個php實例來處理客戶端的請求。
php-fpm是負責管理線程的,因此要進行性能優化的時候,主要從它同時開啓多少個線程等參數有關。
nginx 是負責轉發請求的,因此要從 緩存方面進行優化。當nginx 從php-CGI獲取到 數據後,能夠進行緩存,讓進行一樣請求的數據,直接從緩存讀取,而不用再去請求 php-CGI 從新執行程序產生數據,這樣就能夠有效的減小cpu的處理量,提升性能。php