忆梦小站 - 加速
type: channel
link: https://www.onyi.net/tag/%E5%8A%A0%E9%80%9F/
items: 腾讯云CDN第三方存储桶私有读写，纵享安全
items: 一种无损的图片压缩格式-WebP
items: 将自己网站的静态文件同步到七牛
items: 双层CDN接入，防止回源病
items: KVM架构安装bbr为服务器加速

腾讯云CDN第三方存储桶私有读写，纵享安全
type: item
date: 2021-09-14T16:43:00+08:00
description: 引入在公网对对象存储进行读取，有公有读和私有读两个方式，但是由于CDN无法进行验证，导致如果非同一厂商支持内网验证的CDN环境下，必须使用公有读才可以正常从外网访问。最近腾讯云CDN的源站多了一个新选项第三方对象存储，控制台对此的注释是AWS S3和阿里云OSS。言下之意，就是腾讯云CDN支持私有访问第三方存储桶了。腾讯云的老用户都知道如果使用COS服务，可以通过CDN私有访问，防止有别的用户通过直接访问COS源站，忽略了CDN的简易防御，产生大量损失。而现如今腾讯云CDN将这个功能适配到第三方存储桶上，恰好解决了这个问题。本教程以阿里云OSS对接腾讯云CDN为例，简述如何使用该项功能~准备使用该项业务，需要先在第三方创建新的存储桶。新建的时候存储桶的读写权限(Bucket ACL)选择私有，已有存储桶的清选择低访问量的时段进行操作避免影响用户体验。AccessKey的获取与使用创建完私有存储桶之后，我们需要获取AccessKey ID和AccessKey Secret。由于AccessKey拥有账户的全部权限，所以不建议直接将主账号的AccessKey作为对接CDN的AccessKey。阿里云用户可以通过RAM 访问控制创建新的子账户，具体命名规则参照用户文档。需要给相应的子账户授权AliyunOSSReadOnlyAccess的权限策略名称，该权限是只读访问对象存储服务(OSS)的权限。因为不需要用到编辑，只需要只读权限，因此不建议给对应子账户授权太多内容避免出现风险。对接腾讯云CDN一切创建好之后，进入腾讯云CDN控制台，选择添加域名，源站选择第三方存储桶，源站地址填写对象存储的外网访问地址。然后勾选私有存储桶访问，填写刚刚获取的子账户AccessKey ID和AccessKey Secret然后点击确认。缓存策略及问题检查对于动静分离和图站分离的站长，建议直接缓存全站30天，当静态文件出现变更时，再到控制台进行刷新，这样可以大量减少对象存储的计费。如果出现文件加载异常，建议先把存储桶改成公有读私有写，之后关闭私有访问，若依旧存在问题则为对象存储/CDN配置不当。若问题解决，建议检查AccessKey有效性和权限。结语腾讯云CDN居然可以推出此项功能是我没想到，相比别家自己只能对接自己的对使用多家云厂商产品的用户更加友好。也希望别的厂商能尽快推出类似功能。

一种无损的图片压缩格式-WebP
type: item
date: 2020-10-02T18:28:00+08:00
description: Webp是谷歌推出的适合于Web使用的图像格式，在保持同样质量的情况下可比JPG减小40%的体积。[post cid="362" cover="https://i7.onyi.net/head/tp39.jpg"/]通过图片压缩网站/插件的处理后，图片的大小可以有效减少，但即便到了极限，仍可能对服务器带宽造成一定压力。在过去的一段时间内，很多网站尝试了WebP。对于小带宽服务器，可以提高打开速度。对于对象存储用户，可以降低流量费用。随着用户数量的增长，越来越多浏览器对WebP格式的图片进行了适配，但是有一部分针对所有浏览器的站点，仍无法开启WebP格式。但是通过vue，我们可以通过判断浏览器是否支持WebP，并进行图片的调换，来保障所有了浏览器均可访问。webp: { bind: (el,vnode) => { //先判断浏览器是否支持webp let isWebp = false; let elem = document.createElement("canvas"); if (!!(elem.getContext && elem.getContext("2d"))) { isWebp = elem.toDataURL("image/webp").indexOf("data:image/webp") === 0; } //将属性保存在el中 el.isWebp = isWebp; }, inserted: (el,binding) => { el.updateImg = (el,binding) => { if (el.isWebp) { el.src = binding.value.toString().replace(/\.(png|jpe?g|gif|svg|bmp)$/g, ".webp"); }else { el.src = binding.value } }; el.updateImg(el,binding); }, update: (el,binding) => { el.updateImg(el,binding); } } },在对象存储，也同样可以通过外链调用WebP图片，来减少流量费用。转换后的图片，部分大小甚至是同内容.png图片的十分之一，可以说对小带宽服务器十分友好了。对于原为.png和.jpg的图片，可以通过在线转换器进行转换，或者通过对象存储对图片格式进行修改，也十分方便。通过将图片格式转化为WebP，可以减少费用并且获得更好的网站体验，对于访客和站长都十分友好。参考文献:①https://www.zhihu.com/question/27201061 ②https://www.oschina.net/p/webp?hmsr=aladdin1e1引用文章:①https://blog.csdn.net/qq_28473733/article/details/103005223

将自己网站的静态文件同步到七牛
type: item
date: 2019-08-21T10:54:00+08:00
description: 引入网站的访问速度很大程度影响了访客是否愿意继续关注你的网站，一个速度优化好的网站，可以留住更多的访客。通常我们会使用CDN、外链图片以达到加速站点速度，减少服务器压力的目的。但是CDN只能将服务器的css、js等静态文件缓存在CDN节点上，而真正的文件其实保存在站长的服务器上。如果用户是这个节点第一个访客或者缓存已经过期，访客的请求就会让CDN节点重新获取一次你的静态文件，而这也就导致了“第一次访问很慢，后来就快了”的结果。由于对象存储的费用逐渐降低，更多的站长更愿意选择将自己的静态文件托管给第三方机构代为保存。这也不仅仅能提高速度还能减少服务器压力。这篇文章就叙述一下我是怎么把本地静态文件同步到七牛云的。（其他对象存储提供商的用户也可以参考，基本步骤相同）[scode type="share"]这次的示例操作是Typecho的handsome主题，其他博客或者站点请按照自己的文件路径填写即可[/scode]开始准备1）在七牛云注册一个账号，并实名认证获取免费额度，博主的邀请链接（点击可以获赠免费额度和优惠券）：https://s.qiniu.com/VfqeYb2）创建一个新的对象存储空间，需要选择公共空间（私有空间无法跨域），建议选择正在促销的地域3）在融合CDN（别的互联可能叫CDN或全站加速）绑定你的域名，ps:建议申请个SSL证书，如果你的站点有证书但是调用的css和js没有会出现报错的情况4）绑定域名到空间到此，准备工作已经完成，确认你没有疏漏任何步骤，就可以正式开始了。正式开始1）选择镜像存储，在镜像源填入你网站的静态文件目录例如忆梦小站的静态文件目录是：https://www.onyi.net/usr/themes/handsome/assets/handsome主题的用户可以只改动域名，Typecho用户改动主题名和域名。ps:不要填写忆梦小站的，忆梦小站的css与其他同主题博客有差，所以外链调用根本无法访问，只会造成博客错误的结果。2）在主题后台，选择：速度优化→将本地静态资源上传到你的cdn上填写自己的对象存储域名，例如忆梦小站的：https://cdn.onyi.net/如果你的静态文件是放在文件夹里面的，你可能需要/assets或其他文件夹，但如果你是放在根目录，只需要填写域名就行ps:不要填写忆梦小站的，忆梦小站开启了防盗链，所以外链调用根本无法访问，只会造成博客错误的结果。3）访问自己的站点域名，查看是否已经同步，如果出现同步不完整，就多访问几次，尽量访问多种存在css、js差异的页面。常见问题处理1）如果网站只显示了html文件，且F12发现镜像域名超时，检查一下是否填写正确。2）如果个别文件超时或无法加载，找到有调用这个文件的页面并刷新一下即可（不是强制刷新）。3）如果对象存储中显示有文件但网站显示异常的话，检查是否开启防盗链，是否开启跨域访问，并进行改动。4）如果网站加载速度偏慢，属于正常现象，因为首次访问是需要将文件同步到对象存储的。其他的方式为了提高各位使用Handsome主题的用户的加载速度，星路博客的博主将Handsome主题的静态文件全部处理后存放在阿里云CDN上，未设置防盗链。供各位博主使用。[scode type="red"]为了节约钱财（博主穷），请不要大量访问。[/scode]使用方法Handsome主题的后台设置-速度优化-将本地静态资源上传到你的cdn上中填写：https://asset.starroad.top/handsome/{版本号}/如：https://asset.starroad.top/handsome/5.0.0https://asset.starroad.top/handsome/5.1.0https://asset.starroad.top/handsome/5.1.1注意事项提供5.0.0-5.1.1的静态文件。如有其他问题，请参见星路博客博文。

双层CDN接入，防止回源病
type: item
date: 2019-04-13T13:47:00+08:00
description: 引入很多站长选择的是月限流/免费流的CDN服务，在受到cc攻击的时候，极有可能流量消耗过多，导致回源，源站IP泄露！而且部分站长使用的是付费CDN，虽然不会泄露IP但是一扣就很多，临时换CDN也会导致一系列麻烦。今天，我们就为大家提供一个解决办法。适用环境1、两个不同厂商，稳定的CDN2、CDN接入方式必须分别为NS接入、CANAME接入（顺序可以调换）3、域名已备案分层建议套餐一——第一层要求：免费/低价，带有轻量的DDOS防御及完善的cc规则，加速效果可能较差第二层要求：价位较高，没有策略及防御，但是加速效果好[实际搭配]第一层：cloudflare（没有国内节点）、知道创宇（免费版仅限80）、百度云加速（免费版仅限80）、上海云盾第二层：又拍云（全站加速，不推荐）、verycloud（免费50G/月）、阿里云CDN、阿里云全站加速（不推荐按量计费）、腾讯云CDN、腾讯云全站加速（不推荐按量计费）接入方法1、登录第一个CDN，接入方式为NS2、获得NS接入方式的两个DNS服务器3、按照提示接入第一层CDN4、win系统按Win＋R调出运行，输入cmd并回车5、ping当前域名，直到返回的IP值改变，大概需要10分钟6、登录第二个CDN，接入方式为CANAME7、按照提示输入域名，获取接入的CANAME值8、分别填写到域名商、第一层CDN解析处9、统一80/443端口10、不要采用ping，大概5分钟刷新一次看看第二层CDN统计处是否有请求发生。到此，教程部分结束。原理解释接入第一层CDN是为了防止cc、DDOS攻击；而第二层是弥补第一层CDN接入损失的那一部分速度（弥补节点过少的问题）。总体来说，对于第一层CDN节点差的问题可以较好地解决，但是实际访问的时候效果还是以用户端为准。常见问题①访问源站提示超时（百度、知道创宇）：核实第二层CDN为443端口/协议跟随，并关闭服务器证书②双层接入后遭到cc攻击仍旧有大量扣费：正常，只要第一层CDN没有较好地拦截，第二层仍会扣费，但是可以减少一部分损失③接入之后网站没有加速反倒卡顿了：第二层CDN没有很好弥补第一层CDN的损失或损失更大，造成双层延迟声明：这个方法可能起不到什么作用甚至导致更卡了，这些都跟你的设置有一定关系，不是说所有情况下都可以用的。

KVM架构安装bbr为服务器加速
type: item
date: 2019-04-06T12:44:00+08:00
description: 2019年5月3日：国内小带宽服务器请勿使用BBR预备知识在使用Google BBR之前，我们首先要了解它是什么。了解计算机网络的人都知道，在TCP连接中，由于需要维持连接的可靠性，引入了拥塞控制和流量管理的方法。Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法。在最新的linux 4.9及以上的内核版本中已被采用。对于该算法的分析，ss不经过其它的任何的优化就能轻松的跑满带宽。（speedtest测试或fast测试）。由于Google BBR非常新，任何低于4.9的linux内核版本都需要升级到4.9及以上才能使用，故若VPS本身内核版本较低的话，只有KVM架构的VPS才能使用本教程升级内核并使用，openvz的VPS用户若内核版本较低则无法使用！基础方法最简单的方法就是使用Google BBR一键安装脚本。使用root用户登录，运行以下命令：wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.sh ./bbr.sh 安装完成后，脚本会提示需要重启 VPS，输入 y 并回车后重启。 重启完成后，进入 VPS，验证一下是否成功安装最新内核并开启 TCP BBR，输入以下命令：uname -r 查看内核版本，含有 4.9 就表示 OK 了sysctl net.ipv4.tcp_available_congestion_control 返回值一般为：net.ipv4.tcp_available_congestion_control = bbr cubic renosysctl net.ipv4.tcp_congestion_control 返回值一般为：net.ipv4.tcp_congestion_control = bbr sysctl net.core.default_qdisc 返回值一般为：net.core.default_qdisc = fq lsmod | grep bbr 返回值有 tcp_bbr 模块即说明bbr已启动。进阶方法 推荐！由于一键包会进行很多很多判断和处理，而其中有很多步骤可以用更高的效率手工实现。升级内核对于Centos用户， 请执行如下命令：yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel 对于Centos 6，执行：sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf 对于Centos 7，执行：grub2-set-default 0 而对于Debian / Ubuntu系统，可以在Ubuntu Kernel上下载最新版的内核deb安装包。对于64位系统，下载amd64的linux-image中含有generic的deb包，对于32位系统，下载i386的linux-image中含有generic的deb包。安装命令：dpkg -i xxxxxxxxxx.deb 安装完后执行：/usr/sbin/update-grub 升级完后请立即重启VPSreboot启用Google BBR写入配置文件1 echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 2 echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 保存配置文件1 sysctl -p 输入以下命令以检查是否成功1 sysctl net.ipv4.tcp_available_congestion_control 若返回1 net.ipv4.tcp_available_congestion_control = bbr cubic reno 则说明开启成功。转载版权注明信息：原文链接：www.cnblogs.com/Eason1024/p/8177665.html 转自：博客园·葫芦大仙 （文章略有修改，如有侵权，请联系站长）