Nginx调优
一、Nginx进程
[root@wzy ~]# ps aux | grep nginx | grep -v "grep"
其中,master是监控进程,也叫主进程,worker是工作进程,还有cache相关进程,关系如图:
以直接理解为master进程是管理worker进程,而worker进程才是为用户提供服务的。
二、设置Nginx运行进程个数
Nginx运行进程个数一般我们设置CPU的核心或者核心数x2,如果你不了解,top命令之后按1也可以看出来。也可以查看/proc/cpuinfo文件
设置nginx中进程数
在nginx.conf的全局设置中修改
[root@wzy ~]# vi /usr/local/nginx/conf/nginx.conf
改:worker_processes 1;
为worker_processes 4;
三、Nginx事件处理模型
[root@wzy ~]# vi /usr/local/nginx/conf/nginx.conf
nginx采用epoll事件模型,处理效率高
worker_connections是单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections
四、http主体优化
开启高效传输模式
[root@wzy ~]# vi /usr/local/nginx/conf/nginx.conf
sendfile on;
开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,当nginx是一个静态文件服务器的时候,开启sendfile配置项能大大提高nginx的性能。
tcp_nopush on;
必须在sendfile开启模式才有效,防止网络阻塞,积极的减少网络报文段的数量(将响应头和响应体两部分一起发送,而不一个接一个的发送。)
五、长连接超时时间
主要目的是保护服务器资源,CPU,内存,控制连接数,因为建立连接也是需要消耗资源的
[root@wzy ~]# vim /usr/local/nginx/conf/nginx.conf
keepalive_timeout 65;
keepalived_timeout 与client的keep-alive连接超时时间,单位是秒。服务器将会在这个时间后关闭连接,长连接可以减少重建连接的开销,如果设置时间过长,用户又多,长时间保持连接会占用大量资源。
六、Gzip调优
6.1、启用gzip
使用gzip压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约成本,所以说这是一个重点
Nginx启用压缩功能需要你来ngx_http_gzip_module模块,apache使用的是mod_deflate
一般我们需要压缩的内容有:文本,js,html,css,对于图片,视频,flash不压缩,同时也要注意,我们使用gzip的功能是需要消耗CPU的!
在http{}区域中添加
[root@wzy~]# vi /usr/local/nginx/conf/nginx.conf
gzip on;
gzip_min_length 1k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/css text/xml application/javascript;
gzip_vary on;