您当前的位置:首页 > 电脑百科 > 站长技术 > 网站

Nginx启用Gzip/全站CDN加速

时间:2019-11-26 13:53:34  来源:  作者:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

前言

接触到CDN的起因:

我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直比较慢,经查证是我的网站有很多静态js大文件,通过浏览器读取这些js比较耗时间。

最近有了一些空余精力, 好好优化一下加载速度。

分析思路

公用CDN加速公用js库

其实首先想到的是把公共的js库使用公共CDN来加速,比如我的前端用到了echarts,js-cookie等。这些js最开始是放在我自己的服务器上的,我们可以让浏览器直接去读取公共CDN里存放的这些库。

这里使用的是bootcss网站提供的公共CDN,在将这些公共库指向bootcss后,这些js文件加载速度到了100ms以内:

https://cdn.bootcss.com/axIOS/0.18.0/axios.min.js
https://cdn.bootcss.com/moment.js/2.22.2/moment.min.js
「网站优化实战」Nginx启用Gzip/全站CDN加速

 


「网站优化实战」Nginx启用Gzip/全站CDN加速

 

接下来,我们还剩下一些自己的js文件,这些是前端打包后的js,不能用公用CDN来加速。

这里举个例子,下图中的js达到了1.2m,每次在没有缓存的情况下加载这个Js,浏览器都需要5s以上的加载时间,新用户点击我的网站,都需要盯着空白页这么久,十分劝退,很多用户没等到网页渲染完毕就关了。

如下图,极端情况下,会等到15s以上。

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

这是完全不能接受的。

Nginx启用Gzip

接下来我想到的是将js文件大小压缩,毕竟主要是由于文件过大,才导致的传输缓慢。

nginx作为我的反向代理,负责了我服务器对外的服务,我们可以启用nginx的gzip功能,对静态文件进行压缩,包括图片,js,css等。

参考:

https://blog.csdn.net/bigtree_3721/article/details/79849503

按照上面网页的教程,修改nginx的conf。

gzip on;
 gzip_min_length 1k;
 gzip_buffers 4 16k;
 #gzip_http_version 1.0;
 gzip_comp_level 2;
 gzip_types text/plain Application/JAVAscript application/x-JavaScript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
 gzip_vary off;
 gzip_disable "MSIE [1-6].";

压缩后,js文件大小减少了很多,这个1.2m的文件,在浏览器端只需要加载500k的压缩js。

然而,我使用的是1m带宽的云服务器,对于500k大小的js,有时候还是需要3-5s时间来加载,我们还需要想办法继续优化。

对象存储OSS

经过一阵查找,我找到了七牛云,七牛云免费提供10G的OSS存储空间,我的想法是将这个js文件上传上去,拿到文件的链接后,写在前端html中,从OSS读取该JS文件,从而达到加速的效果。

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

然而,由于我全站开启了HTTPs,七牛云的OSS免费额度并不针对HTTPS请求,让我非常头疼,我的宗旨就是不花钱“白嫖”资源(滑稽)。

于是,我找上了自己服务器所在的阿里云。。。

阿里全站CDN加速

阿里云的CDN介绍:

将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。

我使用流量计费方式,购买了100G的流量包:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

之后可以看到自己的流量包:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

在CDN控制台,添加上自己的域名,写上IP,使得加速的域名能够访问你的服务器。

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

登记好域名后,阿里云提示我们去域名解析的地方添加一个CNAME解析:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

阿里云提供了CNAME指向的域名:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

我们将我们的A记录(指向服务器的记录)关闭,添加CNAME记录,指向阿里的CDN节点域名:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

然后访问我们的网站,结果如图,我又意识到,我没搞HTTPS,所有的请求由于强制走https,所以无法访问了。

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

所以我们需要在阿里云的控制台对CDN添加https支持,也就需要导入你网站的https证书:

由于我服务器就在阿里云,并且证书也是阿里云开的一年免费https,所以可以一键导入进来。

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

导入完成后,再次访问网站,在第一次较慢的加载后,重新加载,这次只用了892ms,就加载完毕了该js文件:

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

至此,新用户访问网站几乎可以在2s内显示出全部内容。

PS:用了CDN后,会在阿里云的边缘节点缓存你的静态文件,所以读取的js文件大小是未压缩前的大小。(这一点我是这么认为的,但并不肯定正确)

其它可行方法:Cloudflare免费CDN

Cloudflare特别适合国外服务器网站的加速,经测试,我的阿里云服务器放在上面,加速效果并不是特别明显。

参考:https://www.wn789.com/15161.html

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

「网站优化实战」Nginx启用Gzip/全站CDN加速

 

image

总结

以上就是我使用的一些优化方法,达到加速网站静态文件加载的目的。

经过这些优化后,网站的加载速度从极端情况下的15s,变成了2s内。

当然,以上只是很小一部分方法,还有很多优化的方式,适合不同体量的网站,和不同的使用场景,这里权当抛砖引玉。

关注我

我目前是一名后端开发工程师。主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向。

微信:yangzd1102

Github:@qqxx6661

个人博客:

  • CSDN:@Rude3Knife
  • 知乎:@Zhendong
  • 简书:@蛮三刀把刀
  • 掘金:@蛮三刀把刀


Tags:CDN加速   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
阿里云全站CDN加速是今年重磅推出的新产品,阿里云全站CDN加速融合了动态和静态资源加速技术,有效全面提升整个网站的访问速度和用户体验。如果你的网站备案了,建议你开通尝试,给...【详细内容】
2020-10-13  Tags: CDN加速  点击:(203)  评论:(0)  加入收藏
服务器带宽不够?流量有限?速度太慢?开发者或网站管理者时常会用到一些 JS库,例如最常见的 jQuery 或 CSS 框架,通常不建议自己在服务器存储这些静态文件,因为除了耗流量,也可能因此...【详细内容】
2020-04-28  Tags: CDN加速  点击:(102)  评论:(0)  加入收藏
前几天,我们讲到了为何引入缓存且应该什么时候引入,并且讲到了我们生产中缓存的读写策略是什么,忘记了的可以自行去文章列表看下,同时又单独深入讲解了redis哨兵机制(Redis 哨兵...【详细内容】
2019-12-11  Tags: CDN加速  点击:(98)  评论:(0)  加入收藏
前言接触到CDN的起因:我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直比较慢,经查证是我的网站有很多静态js大文件,通过浏览器读取这些js比较耗时间。最近...【详细内容】
2019-11-26  Tags: CDN加速  点击:(125)  评论:(0)  加入收藏
现如今大众对互联网服务的要求越来越高,对于网站访问速度的快慢自然会更加在意。虽然带宽不断增加,但用户数量也在不断增加,受Web服务器的负荷和传输距离等因素的影响,响应速度...【详细内容】
2019-11-04  Tags: CDN加速  点击:(58)  评论:(0)  加入收藏
简单说明:众多公有云厂商似乎都是和传统CDN厂商一同合作实现在云下的CDN服务供给。最近甚至有老牌CDN反攻云厂商(CDN厂商卖私有云)。借着前段时间护网行动,好多CDN都工作的不太...【详细内容】
2019-07-19  Tags: CDN加速  点击:(328)  评论:(0)  加入收藏
▌简易百科推荐
今天我们来聊一下北京地区的《ICP经营许可证》有多好办,现在的互联网上提供的商机越来越多,增值电信业务十分火爆,企业通过互联网突破地域的限制,把公司产品卖到更远的地方,同时...【详细内容】
2021-12-17  梦想理应飞翔Yy    Tags:《ICP经营许可证》   点击:(12)  评论:(0)  加入收藏
转自: https://blog.kermsite.com/p/blog-intro/由于格式问题,部分链接、表格可能会失效,若失效请访问原文此专题将详细介绍如何从零开始搭建一个个人博客。Dec 01, 2021阅读时...【详细内容】
2021-12-17  LaLiLi    Tags:个人博客   点击:(7)  评论:(0)  加入收藏
SP证是第二类增值电信业务经营许可证的简称。分为全网SP证和地网SP证。申请经营许可证是在工信部申请,全网SP经营许可证的有效期是5年,全网SP许可证在工信部办理全网SP续期,地...【详细内容】
2021-11-01  s陳述    Tags:sp证书   点击:(39)  评论:(0)  加入收藏
现在还有许多人不知道EDI许可证是什么东西今天我就来给大家讲解一下.EDI许可证就是一种增值电信业务经营许可证。是针对在线数据处理和交易处理业务需求的专业资格证书。 《...【详细内容】
2021-10-28  soberXx    Tags:edi许可证   点击:(75)  评论:(0)  加入收藏
元素的化学概念,如周期表中的化学元素,一切物质都是由元素构成的。对程序员而言,网站建设制作就是代码构成网站。企业网站设计者也收集了各种各样的元素,但并非所有元素都需要运...【详细内容】
2021-10-26  南宁云尚网络    Tags:企业网站   点击:(40)  评论:(0)  加入收藏
在运营网站的过程中,有一件不可忽略的事情。那就是网站上线之前需要完成 ICP 备案。说到这里,很多朋友就提出疑问了~· 什么是 ICP 备案呢?· ICP 备案需要哪些材...【详细内容】
2021-10-22  启测云    Tags:ICP备案   点击:(46)  评论:(0)  加入收藏
最近有朋友问我,我公司有外资就不能申请ICP许可证了么?外资的定义是什么?其实是可以的,但有一个特定条件必须满足,外资公司是指公司有外资股东,比如香港、加拿大、美国、韩国等等,...【详细内容】
2021-10-21  小白速看Z    Tags:ICP   点击:(51)  评论:(0)  加入收藏
自互联网出现以来,超文本传输协议http协议被广泛用于在Web浏览器和网站服务器之间传递信息,但随着互联网的发展,另一种协议——https出现,并与http一同服务于这个互联...【详细内容】
2021-10-20  我是FEIYA    Tags:https   点击:(44)  评论:(0)  加入收藏
Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心。图片来自 包图网先看看结果有多轻量吧: Loki 是一个为有效保存日志数据而优化的数据存储。日志数据的高效索...【详细内容】
2021-09-14    51CTO  Tags:Loki日志   点击:(97)  评论:(0)  加入收藏
背景最近做微信小程序开发比较多,大家知道线上微信小程序为了安全起见,要求后端通信协议必须是HTTPS,这就要求需要安装证书。为了测试预发布线上环境,特地买了个最便宜的域名,为...【详细内容】
2021-09-14  小李子说程序    Tags:HTTPS证书   点击:(125)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条