阿狸先森|Nginx专题(3):nginx优化方法论( 三 )


开启TFO , 加速tcp处理
Nagle算法
-避免一个连接上同时存在大量小报文.最多只存在要给小报文.合并多个小报文一起发送
-提高带宽利用率
吞吐量优先:启用Nagle算法,tcp_nodelayoff
低时延优先:禁用Nagle算法,tcp_nodelayon
示例:禁用跟启用Nagle算法示意
nginx中gzip的主要作用就是用来减轻服务器的带宽问题 , 经过gzip压缩后的页面大小可以变为原来的30%甚至更小 , 这样用户浏览页面时的速度会快很多 。 gzip的压缩页面需要浏览器和服务器双方都支持 , 实际上就是服务器端压缩 , 传到浏览器后浏览器解压缩并解析 。 目前的大多数浏览器都支持解析gzip压缩过的页面 。参数说明:
语法:gzipon|off;默认值:gzipoff;作用域:http,server,location,ifinlocation语法:gzip_min_lengthlength;默认值:gzip_min_length20;作用域:http,server,location说明:设置允许压缩的页面最小字节数 , 页面字节数从header头中的Content-Length中进行获取 。 因为过小的文件内容压缩之后效果不明显 , 甚至会比不压缩时更大 , 所以一般建议长度不小于1000或1k 。响应头响应浏览器使用gzip解压
语法:gzip_buffersnumbersize;默认值:gzip_buffers324k|168k;作用域:http,server,location说明:设置response响应的缓冲区大小 。 324k代表以4k为单位将响应数据以4k的32倍(128k)的大小申请内存 。 如果没有设置 , 缓冲区的大小默认为整个响应页面的大小 。gzip_comp_level
语法:gzip_comp_levellevel;默认值:gzip_comp_level1;作用域:http,server,location说明:设置gzip的压缩级别 , 可接受的范围是从1到9 , 数字越大压缩率越高 , 但更消耗CPU , 一般设置6即可 。gzip_types
语法:gzip_typesmime-type...;默认值:gzip_typestext/html;作用域:http,server,location说明:指定哪些类型的相应才启用gzip压缩 , 多个用空格分隔 。 通配符”*”可以匹配任意类型 。 不管是否指定”text/html”类型 , 该类型的响应总是启用压缩 。 一般js、css等文本文件都启用压缩 , 如application/x-javascripttext/cssapplication/xml等 。 具体的文件类型对应的mimi-type可以参考conf/mime.types文件 。gzip_http_version
语法:gzip_http_version1.0|1.1;默认值:gzip_http_version1.1;作用域:http,server,location说明:设置gzip压缩所需要的请求的最小HTTP版本 , 低于该版本不使用gzip压缩 。 一般不用修改 , 默认即可 。gzip_disable
gzip_disable“MSIE[1-6].”语法:gzip_disableregex...;默认值:—作用域:http,server,location说明:这个指令是在0.6.23版本增加的 。 如果请求的”User-Agent”头信息能被指定的正则表达式匹配 , 则对响应禁用gzip压缩功能 。 主要是为了兼容不支持gzip压缩的浏览器 , 比如IE6 , 不过IE6早就废弃了浏览器和服务器进行gzip压缩的请求和处理返回过程