当前位置 主页 > 服务器问题 > nginx问题汇总 >

    Nginx配置文件(nginx.conf)配置详解(总结)

    栏目:nginx问题汇总 时间:2018-10-11 16:55

    本篇文章主要介绍了Nginx配置文件(nginx.conf)配置详解,这对初学者有一定的参考价值,有兴趣的可以了解一下。

    现在经常碰到有新用户问一些很基本的问题,最近整理了一下,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超时时间。