首頁  >  問答  >  主體

nginx - 如何根據伺服器配置設定web服務參數?

最近一直在折騰伺服器相關的東西,遇到些問題,請教下大家。
目前網站造訪狀況: PV: 15W +,IP: 2W+
伺服器配置:
CPU:4 * Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz
記憶體:4G
頻寬:6M
硬碟:2 * 100G HDD


這台伺服器以前用的是wdcp面板,php5.2 + mysql 5.1,高峰期CPU和負載一直很穩定,後來站點被黑後我接手處理,重新安裝系統後,用的也是一鍵搭建的環境(blog.linuxeye.com上的包),搭建的Lanmp環境,開啟服務後,用另外一台伺服器ab測試( ab -c 100 -n 500 ),CPU馬上滿載,負載也飆了上去,程式是WordPress,雖然目前高峰期能扛得住,但是CPU經常98%左右,訪問速度沒有以前那麼快;
透過檢視並發情況 netstat -an | grep ESTABLISHED | wc -l,高峰期在600左右造訪時明顯要等待3秒左右,負載也是很高。

對此想了解的是:

  1. 這台伺服器配置,這樣的訪問量算是極限了嗎?能達到什麼程度?
  2. Apache(2.4)中以prefork模式工作,一個使用者存取會建立一個流程?
  3. Apache中的prefork配置中的MaxConnectionsPerChild參數,是每個進程的最大連接數,這個連接數指的是什麼,例如訪問一個頁面同時會有js,css,img這些請求,指的是這些keepAlive期間的連接數?
  4. 如何根據目前伺服器設定來判斷並設定apache或nginx的設定參數?資源佔用的多少,是如何計算的?

懇請有經驗的前輩指點下,謝謝!

淡淡烟草味淡淡烟草味2734 天前603

全部回覆(3)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 17:04:45

    看 CPU 被什麼佔滿了,是否在等待 IO.

    如果已經有了Nginx, 直接用Nginx + PHP-FPM 就好了,沒必要用Apache(除非你有其他的東西必須Apache). 盡量用PHP-FPM 不要用mod_php, 根據內存恰當地設置PHP-FPM的最大進程數(一個進程大概需要20-40M 記憶體)。

    回覆
    0
  • 为情所困

    为情所困2017-05-16 17:04:45

    建議:
    1.架構改換成Nginx+PHP-FPM,Nginx+PHP-FPM環境建置
    2.將靜態檔案(JS、CSS、靜態圖片)全部放到CDN上,現在CDN的價格很便宜的,推薦又拍、七牛
    3.做好WordPress緩存,WordPress的許多部落格頁面完全可以做靜態緩存,肯定有多外掛程式來實作

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:04:45

    如果相容性問題不大,可慮升級PHP版本。 5.5有巨大性能提升。

    回覆
    0
  • 取消回覆