最近有站长反馈,网站打开速度非常慢,服务器CPU带宽经常满,怀疑是被CC攻击了。
主机吧一开始也以为是被CC攻击了,给客户开通了百度云加速,并开启了CC攻击拦截,结果发现该网站的访问请求并没有多少,访问流量也低得可怜。
检查网站访问日志,也并没有未通过百度云加速IP进来的情况。测试更是发现云加速访问时不是时502,这种状态一般是由于CDN节点连接源服务器卡慢甚至无法连接引起的。
于是主机吧做了下本地强制回源访问测试了下网页请求,发现网站首页打开非常的慢,并且每一次强制刷新后,服务器的带宽会跳得非常高。
由此我们得出是网页的问题,浏览器F12查看加载请求,我们发现网站其它请求速度都正常,唯独在字体请求上非常慢,首页加载甚至出现超时的情况。
我们了解到这是一种中文字体,字体大小高达30MB以上,这就能解释得通为什么网页经常卡慢了。因为浏览器会对每一次新的请求重新加载中文字体,而中文字体又非常的大,这就直接导致了服务器带宽跟不上,直接卡死了。
而一般的网页默认的都是宋体,这是一种电脑默认就有字体,浏览器并不需要重新加载字体,所以我们并没有什么感觉,但是如果网页上使用了电脑上默认没有字体,就需要重新加载,重新加载是非常慢的,而且如果字体在你服务器,那也是非常吃带宽的,因为中文字体本身非常大,30M都是正常的,一些字体甚至高达100M。
如果网页非常需要好看的字体,而又不想影响网页访问速度怎么办?
目前有一个非常成熟的方案,那就是引用网页字体,web font。,这是CSS的模块,利用CSS的@font-face属性可以在网页中嵌入任意字体,当然想要把自己的字体上传到web font服务商上,并引用这是收费的,价格并不便宜哦。国内很多网页直接引用的是阿里巴巴的免费网络字体,比如主机吧目前的主题就是引用阿里巴巴的黑体。