2017-12-25 15:11:27 1432瀏覽
#運行用戶
usernobody;
#啟動進程,通常設置成和cpu的數(shù)量相等
worker_processes1;
#全局錯誤日志及PID文件
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
#工作模式及連接數(shù)上限
events{
#epoll是多路復用IO(I/OMultiplexing)中的一種方式,
#僅用于linux2.6以上內(nèi)核,可以大大提高nginx的性能
useepoll;
#單個后臺workerprocess進程的最大并發(fā)鏈接數(shù)
worker_connections1024;
#并發(fā)總數(shù)是worker_processes和worker_connections的乘積
#即max_clients=worker_processes*worker_connections
#在設置了反向代理的情況下,max_clients=worker_processes*worker_connections/4為什么
#為什么上面反向代理要除以4,應該說是一個經(jīng)驗值
#根據(jù)以上條件,正常情況下的NginxServer可以應付的最大連接數(shù)為:4*8000=32000
#worker_connections值的設置跟物理內(nèi)存大小有關
#因為并發(fā)受IO約束,max_clients的值須小于系統(tǒng)可以打開的最大文件數(shù)
#而系統(tǒng)可以打開的最大文件數(shù)和內(nèi)存大小成正比,一般1GB內(nèi)存的機器上可以打開的文件數(shù)大約是10萬左右
#我們來看看360M內(nèi)存的VPS可以打開的文件句柄數(shù)是多少:
#$cat/proc/sys/fs/file-max
#輸出34336
#32000<34336,即并發(fā)連接總數(shù)小于系統(tǒng)可以打開的文件句柄總數(shù),這樣就在操作系統(tǒng)可以承受的范圍之內(nèi)
#所以,worker_connections的值需根據(jù)worker_processes進程數(shù)目和系統(tǒng)可以打開的最大文件總數(shù)進行適當?shù)剡M行設置
#使得并發(fā)總數(shù)小于操作系統(tǒng)可以打開的最大文件數(shù)目
#其實質(zhì)也就是根據(jù)主機的物理CPU和內(nèi)存進行配置
#當然,理論上的并發(fā)總數(shù)可能會和實際有所偏差,因為主機還有其他的工作進程需要消耗系統(tǒng)資源。
【關注微信公眾號獲取更多學習資料】