Nginx反向代理併發能力的強弱,直接影響到系統的穩定性。安裝Nginx過程,預設配置並不涉及到過多的併發引數,作為產品執行,不得不考慮這些因素。Nginx作為產品執行,官方建議部署到Linux64位系統,基於該建議,本文中從系統線之上考慮Nginx的併發優化。
1、開啟Linux系統epoll支援
epoll支援,可以大大提高系統網路IO的併發數。
2、Linux檔案控制程式碼數限制
Nginx代理過程,將業務server請求資料快取到本地檔案,再將檔案資料轉發給請求client。高併發的client請求,必定要求server檔案控制程式碼的併發開啟限制。
使用ulimit命令,檢視linux系統檔案控制程式碼併發限制。
$ ulimit -n
1024
linux系統預設設為1024,我們須要將該值設為65535。
改動系統檔案/etc/security/limits.conf,加入例如以下資訊,並又一次啟動系統生效。
* soft nofile 65535
* hard nofile 65535
$ sudo vi /etc/security/limits.conf
3、Nginx配置檔案裡,加入檔案限制及連線數資訊
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
Nginx併發數受限,通常引起502錯誤,完畢上述操作,通常情況都能解決。