現在經常碰到有新用戶問一些很基本的問題,最近整理了一下,Nginx的配置文件nginx.conf配置詳解如下:
user nginx nginx ;
Nginx用戶及組:用戶 組。window下不指定
worker_processes 8;
工作進程:數目。根據硬件調整,通常等于CPU數量或者2倍于CPU。
error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info;
錯誤日志:存放路徑。
pid logs/nginx.pid;
pid(進程標識符):存放路徑。
worker_rlimit_nofile 204800;
指定進程可以打開的最大描述符:數目。
這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與nginx進程數相除,但是nginx分配請求并不是那么均勻,所以最好與ulimit -n 的值保持一致。
現在在Linux 2.6內核下開啟文件打開數為65535,worker_rlimit_nofile就相應應該填寫65535。
這是因為nginx調度時分配請求到進程并不是那么的均衡,所以假如填寫10240,總并發量達到3-4萬時就有進程可能超過10240了,這時會返回502錯誤。
events{use epoll;
使用epoll的I/O 模型。linux建議epoll,FreeBSD建議采用kqueue,window下不指定。
補充說明:
與apache相類,nginx針對不同的操作系統,有不同的事件模型
A)標準事件模型
Select、poll屬于標準事件模型,如果當前系統不存在更有效的方法,nginx會選擇select或poll
B)高效事件模型
Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用雙處理器的MacOS X系統使用kqueue可能會造成內核崩潰。
Epoll:使用于Linux內核2.6版本及以后的系統。
/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使用于Solaris 10。 為了防止出現內核崩潰的問題, 有必要安裝安全補丁。
worker_connections 204800;
沒個工作進程的最大連接數量。根據硬件調整,和前面工作進程配合起來用,盡量大,但是別把cpu跑到100%就行。每個進程允許的最多連接數,理論上每臺nginx服務器的最大連接數為。worker_processes*worker_connections
keepalive_timeout 60;
keepalive超時時間。
新聞熱點
疑難解答