nginx作為web服務中最重要的服務,無疑是工作量最大、最頻繁的,因此nginx的效能直接決定web請求的多少、並發量、吞吐能力,進而直接影響用戶的開啟網站狀況。使用者的直接感受就是會出現50x的錯誤,對於這類問題,確保頁面程式沒問題的情況下,一般可以重點檢查nginx配置。相關配置都再nginx.conf定義,下面為大家簡介一個最常用、最基本的幾個值。
1.worker_processes 數,該值官方建議與CPU數一致,也可以設定為auto
2.worker_connections數量,數值位於event中,如下:
events{worker_connections8192;multi_accepton;}
其中multi_accept 表示nginx收到一個新連接通知後接受盡可能多的連接,預設是on,設定為on後,多個worker按串列方式來處理連接,也就是一個連接只有一個worker被喚醒,其他的處於休眠狀態,設定為off後,多個worker按並行方式來處理連接,也就是一個連接會喚醒所有的worker,直到連接分配完畢,沒有取得連接的繼續休眠。當你的伺服器連線數不多時,開啟這個參數會讓負載有一定的降低,但是當伺服器的吞吐量很大時,為了效率,可以關閉這個參數。
而worker_connections表示每個worker(子進程)可以建立多少個連接,預設為1024,最大是65535。筆者這裡填了8192,這數值與伺服器效能有關。