Nginx性能优化
来源:互联网 发布:网络用语dp什么意思 编辑:程序博客网 时间:2024/06/08 03:01
Nginx性能优化
隐藏版本号
在http里面添加一行:server_tokens off;
worker_processes
默认可以设置为CPU的核数相等,并发比较大的时候,可以设置为cpu核数*2
分配每一个进程使用一个核数
worker_cpu_affinity 0001 0010 0100 1000 #四核worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 #八核心
事件处理模型优化
Nginx的连接处理机制在不同的操作系统会采用不同的I/O模型,在Linux下,Nginx使用epoll的I/O多路复用模型,在Freebsd中使用kqueue的I/O多路复用模型,在Solaris中使用/dev/poll方式的I/O多路复用模型,在Windows中使用的是icop,等等。
要根据系统类型选择不同的事件处理模型,可供使用的选择有“use[kqueue|rtsig|epoll|/dev/poll|select|poll];”events { use epoll;}
调整Nginx单个进程允许的客户端最大连接数
worker_connects = 1024
总共处理能力 = worker_processes * worker_connects
开启sendfile
http { sendfile on/off; #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off, #以平衡磁盘与网络IO处理速度,降低系统负载。注意:如果图片显示不正常把这个改成off。}
连接超时的参数设置
- client_header_timeout
用于设置客户端连接保持会话的超时时间为60秒。超过这个时间,服务器会关闭该连接,此数值为参考值。 - 设置参数:tcp_nodelay on;
用于激活tcp_nodelay功能,提高I/O性能。
参数作用:默认情况下当数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高I/O性能。但是,在每次只发送很少字节的业务场景中,使用tcp_nodelay功能,等待时间会比较长。 - 设置参数:client_header_timeout 15;
用于设置读取客户端请求头数据的超时时间。此处的数值15,其单位是秒,为经验参考值。 - client_body_timeout 15;
用于设置读取客户端请求主体的超时时间,默认值是60。
参数作用:设置读取客户端请求主体的超时时间。这个超时仅仅为两次成功的读取操作之间的一个超时,非请求整个主体数据的超时时间,如果在这个超时时间内,客户端没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60 - send_timeout 25;
用于指定响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接,默认值为60秒,可以改为参考值25秒。
上传文件大小的限制
client_max_body_size 8m
参数作用:设置最大的允许的客户端请求主体大小,在请求头域有“Content-Length”,如果超过了此配置值,客户端会收到413错误,意思是请求的条目过大,有可能浏览器不能正确显示。设置为0表示禁止检查客户端请求主体大小。此参数对提高服务器端的安全性有一定的作用。
FastCGI调优(图片)
https://wenku.baidu.com/content/38b81d255fbfc77da369b13c?m=677eb0dc3e26a59492c4441651619924&type=pic&src=517a8d367f3145e6bb6dea72a8b143ff.jpg
GZIP的压缩
gzip on
gzip_min_length 1k #设置允许压缩的页面最小字节数,页面字节数从header 头的 Content-Length 中获取gzip_buffers 4 16k #压缩缓冲区大小。表示申请 4 个单位为 16K 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip_http_version 1.1 #压缩版本(默认 1.1 ,前端为 squid2.5 时使用 1.0 )gzip_comp_level 2; #压缩比率。用来指定 gzip 压缩比, 1 压缩比最小,处理速度最快;gzip_types text/plain application/x-javascript text/css application/xml; #用来指定压缩的类型,“ text/html ”类型总是会被压缩gzip_vary on #支持。该选项可以让前端的缓存服务器缓存经过 gzip 压缩的页面1. Nginx gzip压缩功能介绍Nginxgzip压缩模块提供了压缩文件内容的功能,用户请求的内容在发送到用户客户端之前,Nginx服务器会根据一些具体的策略实施压缩,以节约网站出口带宽,同时加快数据传输效率,来提升用户访问体验。2. Nginx gzip压缩的优点 提升网站用户体验:发送给用户的内容小了,用户访问单位大小的页面就加快了,用户体验提升了,网站口碑就好了。 节约网站带宽成本:数据是压缩传输的,因此节省了网站的带宽流量成本,不过压缩时会稍微消耗一些CPU资源,这个一般可以忽略。 此功能既能提升用户体验,又能使公司少花钱,一举多得。对于几乎所有的Web服务来说,这是一个非常重要的功能,Apache服务也有此功能。3. 需要和不需要压缩的对象 纯文本内容压缩比很高,因此,纯文本的内容最好进行压缩,例如:html、js、css、xml、shtml等格式的文件。 被压缩的纯文本文件必须要大于1KB,由于压缩算法的特殊原因,极小的文件压缩后可能反而变大。 图片、视频(流媒体)等文件尽量不要压缩,因为这些文件大多都是经过压缩的,如果再压缩很可能不会减小或减小很少,或者有可能增大,同时压缩时还会消耗大量的CPU、内存资源。4. 参数介绍及配置说明 此压缩功能与早期Apache服务的mod_deflate压缩功能很相似,Nginx的gzip压缩功能依赖于ngx_http_gzip_module模块,默认已安装。
优化步骤
单元测试的方法。
阅读全文
0 0
- Nginx配置性能优化--NGINX
- [nginx]nginx的性能优化
- nginx性能优化
- Nginx 性能优化
- Nginx配置性能优化
- Nginx upstream性能优化
- Nginx性能优化技巧
- Nginx配置性能优化
- Nginx配置性能优化
- Nginx配置性能优化 .
- Nginx配置性能优化
- Nginx配置性能优化
- Nginx配置性能优化
- Nginx配置性能优化
- Nginx配置性能优化
- Nginx性能优化
- Nginx性能优化
- Nginx配置性能优化
- JAVA实现http/https的Post、Get、代理访问请求
- CSU-ACM2017暑期训练12-KMP H
- A*算法
- chromedriver_selenium_java2(图片,JavaScript)
- C#使用Dropzone.js上传图片
- Nginx性能优化
- Docker介绍
- 练习 3-5 编写函数 itob(n, s, b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。例如,itob(n, s, 16)把整数n格式化成十六进制整数保存在s中。
- 我的实现_头部
- LeetCode之1.Two Sum
- 棋盘反转
- 详解JavaScript中localStorage使用要点
- Sqlite3实现脏读
- mybatis入门(包含仅有mybatis的项目)