1.worker_processes auto;
worker进程数,最优值取决于许多因素,包括但不限于cpu核的数量,磁盘空间,负载模式。设置为cpu核数是一个很好的开始,auto会自动检查cpu核数,并设置它。
2.worker_rlimit_nofile 100000;
更改工作进程的最大打开文件数量限制,不写默认是操作系统的限制,设置后nginx可以处理比ulimit -a 更多的文件。这个数值设置的高一些,就不会有too many open files的问题
3.events模块中的worker_connections 2048;
设置一个worker进程同时打开的最大连接数,这个值要比上面提到的worker_rlimit_nofile更高
4.events模块中的multi_accept on;
nginx收到一个新的通知后,尽可能接受更多的连接
5.events模块中的use epoll;
epoll不用多说了吧
6.http模块中的sendfile on;
sendfile on;让linux操作系统的sendfile发挥作用。
sendfile是在磁盘和tcp socket之间互相copy数据
sendfile立即将数据从磁盘读到os缓存。内核态完成的,sendfile 要比read加write的组合更有效
7.tcp_nopush on;
nginx在一个数据包里发送所有的头文件,不是一个一个发
8.tcp_nodelay on;
nginx不要缓存数据,而是一段一段发送