不完整配置参考(可参考修改或新增以下配置):
worker_processes 4;
worker_cpu_affinity = 0001 0010 0100 1000;
worker_rlimit_nofile 65538;
events {
use epoll;
worker_connections 65538;
accept_mutex off;
multi_accept off;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_header_buffer_size 4k;
client_max_body_size 2048m;
gzip on;
gzip_disable "msie6";
gzip_min_length 1024;
gzip_vary on;
gzip_comp_level 2;
gunzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
fastcgi_connect_timeout 600;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
# 静态文件缓存 在各个server中按需单独配置
server {
location ~* .(jpg|jpeg|png|gif|ico)$ {
expires 365d;
}
error_log /xxx/error.log;
access_log off;
}
}
参数说明:
nginx进程数,一般设置为CPU核数量, grep processor /proc/cpuinfo | wc -l 命令可获得CPU核数。
将worker process与指定cpu核绑定,降低由于多CPU核切换造成的寄存器等现场重建带来的性能损耗
如果为2核,则配置为:worker_cpu_affinity = 01 10;
如果是8核,则配置为:worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
如果超过8核,(最多开启8个,8个以上会不稳定)则worker_processes auto;且不配置worker_cpu_affinity参数。
每个进程允许的最多连接数,与ulimit -n值保持一致
一个nginx 进程打开的最多文件描述符数目,与worker_connections值保持一致
提高文件传输性能
sendfile为on时这里也应该设为on,数据包会累积一下再一起传输,可以提高一些传输效率。
小的数据包不等待直接传输
keepalive_timeout 指定了与客户端的 keep-alive 链接的超时时间。服务器会在这个时间后关闭链接。降低这个值,以避免让 worker 过长时间的忙碌。
注:后台有导出的话,其中参数keepalive_timeout可设置大些,为 1065
客户端请求的Header头缓冲区大小
客户端上传的body的最大值(由于会诊之类的功能有大文件上传,所以这里的值需要设置为可上传最大文件上限)
开启Gzip,gzip可以帮助Nginx减少大量的网络传输工作
对IE6浏览器的数据不进行GZIP压缩。
Gzip压缩功能对大数据的压缩效果明显,但是如果压缩很小的数据,可能出现越压缩数据量越大的情况,因此应该根据相应页面的大小,选择性开启或者关闭Gzip功能。建议将值设置为1KB。
用于设置在使用Gzip功能时是否发送带有“Vary:Accept-Encoding”头域的响应头部,该头域的主要功能是告诉接收方发送的数据经过了压缩处理,开启后端效果是在响应头部Accept-Encoding: gzip,对于本身不支持Gzip的压缩的客户端浏览器是有用的。
压缩级别
如果客户端浏览器不支持Gzip处理,Nginx服务器将返回解压后的数据,如果客户端浏览器支持Gzip处理。Nginx服务器忽略该指令设置,仍然返回压缩数据。
启用gzip压缩的文件类型
日志,关闭访问日志,减少磁盘IO
Nginx服务器和后端FastCGI服务器连接的超时时间
Nginx允许FastCGI服务器返回数据的超时时间,即在规定时间内后端服务器必须传完所有的数据,否则Nginx将断开这个连接
Nginx从FastCGI服务器读取响应信息的超时时间,表示连接建立成功后,Nginx等待后端服务器的响应时间
Nginx FastCGI 的缓冲区大小,用来读取从FastCGI服务器端收到的第一部分响应信息的缓冲区大小
设定用来读取从FastCGI服务器端收到的响应信息的缓冲区大小和缓冲区数量
静态文件缓存
配置完成后,执行nginx -s reload命令重新加载配置文件