[ ] 调优的必要性 javascript
[ ] 调优的维度和看法分歧css
一直不肯意写优化的内容出来分享,实在是不知道该如何取写。由于,写很差就会被各类慰问,今天终于仍是写了,由于有太多人私信或在群里问我或者让给分享经验,我仍是从了。前端
在聊调优以前,咱们先要知道为什么调优,业务运行和调优的关系。java
这就是业务运行的一个流程,也是咱们保证业务稳定、高效、高可用的运维之道。nginx
调优类的文章是最难写的,由于我只能告诉你调优的选项,没法告诉你具体的阈值,由于不一样的业务运行在不一样的机器,所消耗的资源是不一样的;又由于场景不一样,对应的调优项及阈值是变幻无穷的,就比如你和你上铺的兄弟都是感冒了,去医院看病开的药倒是大相径庭的。正是如此,才会出现当不少人看到调优的文章,看到了具体的调优项或者阈值就会浮现出两个字,我很差意思说,配个图吧!你们意会就好。shell
worker_processes 1;后端
这是用来配置nginx启动几个工做进程的,默认为1。而nginx还支持一个名为worker_cpu_affinity的配置项,也就是说,nginx能够为每一个工做进程绑定CPU。我作了以下配置:浏览器
events { worker_connections 1024; }
worker_cpu_affinity 0010 0100 1000;缓存
worker_processes 3; worker_cpu_affinity 0010 0100 1000; #这里0010 0100 1000是掩码,分别表明第二、三、4颗cpu核心。
重启nginx后,3个工做进程就能够各自用各自的CPU了。
ps -eo psr,pid,arg 查看服务器
nginx的并发=worker_processes*worker_connections
压缩功能对于WEB服务器来讲过重要了,主要体如今如下两个方向:
1)提高用户体验:传输数据变小,用户等待时间变短。
2)节省公司带宽成本:压缩后传输,传输数据变小,带宽占用的更少。
既然能给用户好的体验,又能给公司省钱。这么好的事情何乐不为呢,因此这个是工做中必备配置神器。
可是配置压缩须要更你们说一下注意事项:
1)图片、音视频不要压缩
2)小于1K的不要压缩,不然越压越大
3)压缩级别越大,就越消耗CPU
未开启压缩
开启压缩
代码以下:
gzip on;
gzip_http_version 1.1;
gzip_disable "MSIE [1-6].";
gzip_proxied any;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_comp_level 3;
gzip_types text/plain text/css application/x-javascript application/javascript application/xml;
gzip on; (启用 gzip 压缩功能) gzip_http_version 1.1; 它的默认值是HTTP/1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩 gzip_disable "MSIE [1-6].";设置是禁用IE1-6版本的gzip压缩 gzip_proxied any; (nginx 作前端代理时启用该选项,表示不管后端服务器的headers头返回什么信息,都无条件启用压缩) gzip_min_length 1024; (最小压缩的页面,若是页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩) gzip_buffers 4 8k; (设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流 按照原始数据大小以8K为单位申请4倍内存空间) gzip_comp_level 3; (压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,通常设置为3就能够了) gzip_types text/plain text/css application/x-javascript application/javascript application/xml; (什么类型的页面或文档启用压缩)
开启压缩验证
浏览器缓存(Browser Caching) 是为了加速浏览并节约网络资源,浏览器在用户磁盘上对最近请求过的文档进行存储。
客户端缓存和压缩有本质的区别,用户第一次下载数据后会被保存在客户本地硬盘,下次在使用的时候,只要本地资源没有过时,就直接从本地硬盘读取了,速度最快,由于不用去找WEB服务器拿数据了。一样它优化了用户体验和节省了公司带宽成本
须要注意的是:
缓存通常缓存的是图片、网站框架、音视频等不常变化的数据。应用最好的就是百度首页,你们有没有发现有时候你没网都能打开百度首页啊,那就是看的你本地缓存。
nginx本地缓存配置指令
nginx能够经过 expires 指令来设置浏览器的Header
语法: expires [time|epoch|max|off]
默认值: expires off
做用域: http, server, location
使用本指令能够控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的做用)。 能够在time值中使用正数或负数。“Expires”头标的值将经过当前系统时间加上您设定的 time 值来得到。 epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。 max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。 -1 指定“Expires”的值为 服务器当前时间 -1s,即永远过时
缓存案例
图片缓存30天 location ~.*\.(jpg|png|jpeg)$ { expires 30d; } js css缓存一小时 location ~.*\.(js|css)?$ { expires 1h; }
缓存验证