nginx参数调优

不完整配置参考(可参考修改或新增以下配置):

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;
    }

}

参数说明:

worker_processes 4;

nginx进程数,一般设置为CPU核数量, grep processor /proc/cpuinfo | wc -l 命令可获得CPU核数。

worker_cpu_affinity = 0001 0010 0100 1000;

将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参数。

worker_connections 65538;

每个进程允许的最多连接数,与ulimit -n值保持一致

worker_rlimit_nofile 65538;

一个nginx 进程打开的最多文件描述符数目,与worker_connections值保持一致

sendfile on;

提高文件传输性能

tcp_nopush on;

sendfile为on时这里也应该设为on,数据包会累积一下再一起传输,可以提高一些传输效率。

tcp_nodelay on;

小的数据包不等待直接传输

keepalive_timeout 65;

keepalive_timeout 指定了与客户端的 keep-alive 链接的超时时间。服务器会在这个时间后关闭链接。降低这个值,以避免让 worker 过长时间的忙碌。

注:后台有导出的话,其中参数keepalive_timeout可设置大些,为 1065

client_header_buffer_size 4k;

客户端请求的Header头缓冲区大小

client_max_body_size 2048m;

客户端上传的body的最大值(由于会诊之类的功能有大文件上传,所以这里的值需要设置为可上传最大文件上限)

gzip on;

开启Gzip,gzip可以帮助Nginx减少大量的网络传输工作

gzip_disable “msie6”;

对IE6浏览器的数据不进行GZIP压缩。

gzip_min_length 1024;

Gzip压缩功能对大数据的压缩效果明显,但是如果压缩很小的数据,可能出现越压缩数据量越大的情况,因此应该根据相应页面的大小,选择性开启或者关闭Gzip功能。建议将值设置为1KB。

gzip_vary on;

用于设置在使用Gzip功能时是否发送带有“Vary:Accept-Encoding”头域的响应头部,该头域的主要功能是告诉接收方发送的数据经过了压缩处理,开启后端效果是在响应头部Accept-Encoding: gzip,对于本身不支持Gzip的压缩的客户端浏览器是有用的。

gzip_comp_level 2;

压缩级别

gunzip_static on;

如果客户端浏览器不支持Gzip处理,Nginx服务器将返回解压后的数据,如果客户端浏览器支持Gzip处理。Nginx服务器忽略该指令设置,仍然返回压缩数据。

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

启用gzip压缩的文件类型

access_log off;

日志,关闭访问日志,减少磁盘IO

fastcgi_connect_timeout 600;

Nginx服务器和后端FastCGI服务器连接的超时时间

fastcgi_read_timeout 600;

Nginx允许FastCGI服务器返回数据的超时时间,即在规定时间内后端服务器必须传完所有的数据,否则Nginx将断开这个连接

fastcgi_read_timeout 600;

Nginx从FastCGI服务器读取响应信息的超时时间,表示连接建立成功后,Nginx等待后端服务器的响应时间

fastcgi_buffer_size 64k;

Nginx FastCGI 的缓冲区大小,用来读取从FastCGI服务器端收到的第一部分响应信息的缓冲区大小

fastcgi_buffers 4 64k;

设定用来读取从FastCGI服务器端收到的响应信息的缓冲区大小和缓冲区数量

location ~* .(jpg|jpeg|png|gif|ico)$ {

        expires 365d;

}

静态文件缓存

配置完成后,执行nginx -s reload命令重新加载配置文件

你可能感兴趣的:(杂项,Nginx)