又用回R7000了
17 1 月 2022
之前尝试将家里宽带换成了单口路由:https://www.mpyes.com/2022.01.11/00:25:49/2712
但后来弄ap覆盖的时候发现网络不通,分析之后发现是因为vlan的缘故,楼上估计还要再加个网管交换机
后来想了想,本着节约的原则,还是继续折腾R7000,于是上网查询别人的经验到底哪个版本的梅林是最稳定的。
最终我还是比较赞同这个说法:如果不需要实现特殊功能,仅仅是作为上网使用,无疑是官方固件才是最稳定的!
我的特殊功能是通过lede实现的,没有打算让R7000去干,于是直接将R7000从梅林固件刷回原厂固件了
手里的R7000刷的是梅林R7000_384,不管直接刷原厂固件,还是刷过渡固件 Merling-R7000-back-to-ofw.trx 都提示错误,具体的错误提示是:
为了符合新法规修订,asus 调整验证规则以提供更好的韧体品质。您使用的韧体版本与先前发布的韧体及未经验证过的第三方韧体不相容,建议您至官方网站下载最新版韧体使用。
尝试了好多方案,最终使用 https://www.linksysinfo.org/index.php?threads/asuswrt-merlin-on-netgear-r7000.71108/page-402#post-314077 这帖子里的固件 R7000-V1.0.3.80_1.1.38.trx 直接刷就成了,都不用过渡。
现在方案是这样的:
192.168.1.1 路由器 & 楼下无线覆盖:R7000原厂固件(关闭DHCP)
192.168.1.2 科学上网 & 局域网网关:LEDE(启用DHCP,并设置网关与DNS都为192.168.1.2)
192.168.1.3 楼上无线覆盖:华三B5路由器(设为有线中继模式)
暂时用下来,感觉确实比梅林稳定,刷了梅林的R7000经常有断流甚至断网的情况。
单网口主机刷LEDE用作主路由
11 1 月 2022
之前买的华三mesh路由器感觉不太稳定:https://www.mpyes.com/2021.02.22/01:11:00/2492
琢磨着买一个双网口的工控机作为主路由,结果上网一看价格被吓呆了,多年前的J1900居然要卖到近千元……
溢价高的原因应该是因为双网口,那么有没有办法直接使用单网口呢?
答案是肯定的!那就是VLAN!
=====================
需要的东西:单网口主机 & 网管型交换机(我用的是 LB-LINK BL-SG108M 8口全千兆网管交换机,价格在200以内)
提前做的准备:
1、猫连交换机1号口、LEDE连交换机8号口,调试用的电脑其它口随便插
2、提前设置好设备IP,比如LEDE是192.168.1.1,交换机是192.168.1.2,调试电脑是192.168.13
具体设置步骤:
1、在交换机新建两个WLAN,一个是LAN、一个是WAN,tagged跟untagged设置如下:
2、为端口1添加PVID(应为WAN的VLAN号)
3、Qos里调高1号口跟8号口的优先级
4、进入LEDE,将LAN的物理设置,添加一个自定义接口 eth0.2
5、将WAN的物理设置,添加一个自定义接口 eth0.3
行了,看下调试电脑是不是能上网了?接下来,就是弄无线覆盖,设备接到2~7任意口都行。
矿渣赚钱宝一代二代三代(玩客云)刷openwrt
29 5 月 2021
上周周末把玩客云刷成了电视盒子,大概方式就是使用公对公usb线缆连接玩客云跟电脑,然后使用USB_Burning_Tool将对应固件烧录进去(玩客云原厂系统刷机需要短接主板两个点,心细一点还是很容易搞定的)然后购买了个usb遥控器,用了一段时间感觉还是很不错的(唯一不爽的就是要通电开机,这个应该是无解的,并不是遥控器的问题)
这周周末尝试将赚钱宝一代二代刷成openwrt然后进行科学上网,刷机的过程比玩客云简单一些,不需要拆机短接啥的,直接使用公对公的usb线缆将赚钱宝连接到电脑,然后电脑打开USB_Burning_Tool选择对应的固件然后点击开始进入刷机模式,然后用牙签或别的东西捅赚钱宝的复位键并按住不要放然后给赚钱宝通电,然后电脑便可自动发现赚钱宝自动进行刷机操作(识别到赚钱宝进入刷机模式后两三秒就可以放开复位键了,不用一直按着)当电脑提示刷机成功后,给赚钱宝插上网线并断电重新上电,赚钱宝就会自动启动进入openwrt了,在路由器的DHCP记录里找到赚钱宝的ip,从电脑浏览器直接打开这个ip,就可以进入openwrt管理页面了
恩山帖子地址:https://www.right.com.cn/forum/thread-4090774-1-1.html
固件备用地址: https://pan.baidu.com/s/1QqX2fh31oa2xCRCuRAxtrA 提取码: 47rs
进入openwrt管理页面之后,在system\software刷新后可见官网ipk库,然后在方框内输入luci-i18n-base-zh-cn点ok便可安装中文支语言包;再有就是科学上网的操作,我发现ss相关是可以直接在软件包列表找到的,但是v2ray是找不到的,所以需要手动安装
一、下载v2ray
下载地址:https://github.com/kuoruan/openwrt-v2ray/releases
查看架构版本的命令:opkg print-architecture
赚钱宝一代二代都会显示:arm_cortex-a5_vfpv4 下载以这个版本结尾的v2ray
二、上传v2ray
通过winscp或其它软件,将固件上传到openwrt
安装命令:opkg install v2ray-core*.ipk
三、配置v2ray
可以在手机翻墙软件分享某个v2ray节点,选择导出配置,然后将配置发到电脑上
配置文件需要修改一下,把10808跟10809两个监听端口的ip由127.0.0.1改为0.0.0.0
然后通过ssh在openwrt上新建一个配置文件,比如 vi /root/config.json 添加上述配置文件然后保存
四、运行v2ray
在/root目录下运行:v2ray ––confdir /root.config.json &
很快就应该看到 v2ray***** started的提示
五、客户端配置
电脑或手机等设备,设置代理ip为openwrt的地址,端口为配置文件里的10808和10809
代理的数据都会走openwrt走,至于是否绕过大陆地址,取决于手机导出的那份配置文件
其它一些问题:
1、开机启动设置后不成功,估计是固件BUG,所以暂时使用上述手动启动(启动成功后可直接ctrl+c退出命令行)
2、直接将电脑的网关设置成openwrt,电脑无法上网,估计是固件BUG,我试了好多方法都无效,所以这个方法暂时只能将赚钱宝作为一台局域网内的翻墙代理服务器使用,有解决方法的朋友麻烦告知一下,不甚感激!
WordPress 固定链接的逻辑分析
11 3 月 2021
之前发过一篇博客:https://www.mpyes.com/2020.08.21/23:59:00/2402
最近注意到,这其实并非我设置的固定链接与WordPress存在某些冲突的问题
我当时的固定链接格式是:http://域名/年.月.日/时:分:秒
之前可能WordPress没有考虑到我的这种链接会存在某一秒会有两篇甚至更多文章的情况
虽然正儿八经写博客根本不太可能出现,但别忘了WordPress是可以自定义文章时间的
所以,在某一个新版本,WordPress注意到了这个问题
我们知道,“域名/年”就会列出指定年份的文章列表,“域名/年/月”就会列出指定月份的文章列表,等等等等
所以WordPress索性直接将没有加入唯一定义字段的固定链接,统一作为文章列表页面去处理
比如:“http://域名/年.月.日/时:分:秒”就表示列出这一秒发布的所有文章的清单
并且:“http://域名/年.月.日/时:分:秒.html”也是同样的效果(因为新规则只考虑是否加入了唯一定义字段)
所谓唯一定义字段,常用的可能就只有 %post_id% 跟 %postname% 这两个了
比如:“http://域名/年.月.日/时:分:秒/%post_id%”或者“http://域名/年.月.日/时:分:秒/%postname%.html”等等
基于上述逻辑,再回头看:https://www.mpyes.com/2020.08.21/23:59:00/2402
其实并非什么BUG,也非代码故障,而是原来的固定链接被WordPress当成了列表去处理,而不再是文章
比如:https://www.mpyes.com/2020.08.21/23:59:00 打开后看不到评论模块,那是因为这是列表页
所以只要点击标题进入文章页 https://www.mpyes.com/2020.08.21/23:59:00/2402 便可看到评论模块了
而如果我的固定链接格式不进行修改,点击标题还是会进入 https://www.mpyes.com/2020.08.21/23:59:00
所以就会发生死循环了,造成评论模块丢失的假象(实际是URL处理逻辑优先级的问题)
========================================
上面是相关的逻辑说明,下面是打不开本博客某些文章的处理方法
========================================
本博客换过目录,很久前是/blog,后来是/r,后来直接放到了/根目录
本博客还换过域名,以前是mpyes.com,现在是mpyes.com
虽然通过301重定向、sql数据库批量替换等方法进行了一些处理
但肯定还有一些漏网之鱼没能考虑到,某些URL无法访问(包括搜索引擎索引的URL,本站文章链接的URL,等等)
如果无法打开的地址是 yaohonglou ,直接替换成 lengchugenya 就行
比如 https://www.mpyes.com/2020.08.21/23:59:00
改为 https://www.mpyes.com/2020.08.21/23:59:00
如果无法打开的地址是在目录 /blog、/r,直接去掉这个目录就行
比如 https://www.mpyes.com/2020.08.21/23:59:00
改为 https://www.mpyes.com/2020.08.21/23:59:00
如果无法打开的地址是一个数字结尾的,那么去掉这个数字试试
比如 https://www.mpyes.com/2020.08.21/23:59:00/2533改为 https://www.mpyes.com/2020.08.21/23:59:00 然后点击文章标题
update:
WordPress似乎也对这个逻辑进行了更新,以前是某时间后面无对于文章ID,直接返回404
而现在则是忽略了时间错误,某位是数字的URL,只要该 %post_id% 存在,便会跳转到正确的地址
当然了,如果以上方法都行不通,而你又非得要用到某篇博客
那么还有一个办法自然是发邮件与我取得联系。
雅黑PHP探针
07 3 月 2021
电脑里存的PHP探针都失效了,应该是PHP版本更新的问题,上网找了一圈新版本的,结果发现两个问题:
1、雅黑PHP探针作者官网八年前就停止更新了;Github上面搜索修改版的,也没有近一两年更新的。
2、现在似乎都流行类似 ServerStatus 这样的需要在ssh安装的探针,功能看起来相当强大。
我比较怀旧,还是喜欢直接上传一个PHP文件就能搞定的探针,所以Google找了雅黑PHP探针不能正常工作的问题,发现原来是PHP7开始抛弃了许多旧版本的函数,所以导致含有旧函数的雅黑探针无法显示,大概是这样的情况:
注:LNMP自带的探针源码有注明是基于雅黑PHP探针修改的
从网上找到了一些修改版,选择了其中两个我个人感觉好用的版本,存档使用,同时也在博客分享一下,便于某些与我有同样困扰的朋友们。下载地址是:https://tu.yaohonglou.com/tz.zip
(特别声明:探针版权归 www.yahei.net 所有,官方2013年1月之后一直未更新,本人基于此才收集整理可用版本)
小内存VPS流畅跑WordPress & 宝塔面板与v2ray共存的配置方案
07 3 月 2021
前段时间将博客转移到了美东的芝加哥机房:https://www.mpyes.com/2021.02.24/23:51:25/2502
用了一段时间感觉速度很不稳定,时快时慢的,于是这周末琢磨着解决一下这个问题。
现在的解决方案是使用搬瓦工的DC6机房,但由于我购买的配置是512M内存的所以跑 MySQL 5.7肯定会吃不消,于是我购买了阿里云美西区域的“云数据库RDS MySQL 版”恰好现在有产品新用户的活动可以花19.9元购买一年的服务,对于我的博客来说这个基础配置应该是搓搓有余的了!然后我走搬瓦工那边ping了阿里云的MySQL,ping值大概10ms左右,还算是比较理想的(搬瓦工DC6在南加州的洛杉矶,阿里云美西MySQL在北加州的硅谷)
宝塔面板与v2ray共存的操作过程如下:
1、在搬瓦工DC6安装宝塔面板,然后配置环境只安装 nginx 1.18.0 跟 php 7.3,其余的均不安装以节省资源。
2、在首页的Linux工具箱设置服务器时区还有swap虚拟内存等。
3、在软件商店的php设置中安装memcached、opcache这两个扩展。
4、添加两个网站,一个是博客A站,一个是翻墙B站(B站要提前解析好,否则会影响后续申请SSL)
5、A站恢复数据之后,修改wordpress的配置文件,将数据库指向到阿里云(A站其它配置就不多说了)
6、在软件商店安装备份软件,参考:https://www.mpyes.com/2021.02.28/00:47:00/2504
7、B站需要配置SSL,然后在配置文件添加如下代码:
location /music/ndd{ proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_intercept_errors on; if ($http_upgrade = "websocket" ){ proxy_pass http://127.0.0.1:9999; } if ($http_upgrade != "websocket" ){ return 301 ../index.html; } }#(注意红色部分,一个是path,一个是port,可以自己修改成别的)
8、安装v2ray(依次是安装、重新启动、开机启动、查看状态)
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)systemctl restart v2raysystemctl enable v2raysystemctl status -l v2ray
9、配置v2ray (V2Ray v4 版本开始,安装脚本不再自动生成配置文件了,需要用户自己手动添加)
在宝塔面板文件管理打开 /usr/local/etc/v2ray 新增一个文件 config.json,填入以下内容:
{ "log": {}, "inbound": { "port": 9999, "listen": "127.0.0.1", "protocol": "vmess", "settings": { "clients": [{ "id": "979cd2f4-5ccc-4c29-af36-583f5b6dbc1a", "level": 1, "alterId": 64 }] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/music/ndd" } } }, "outbound": { "protocol": "freedom", "settings": {} }, "outboundDetour": [{ "protocol": "blackhole", "settings": {}, "tag": "blocked" }], "routing": { "strategy": "rules", "settings": { "rules": [{ "type": "field", "ip": [ "0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "::1/128", "fc00::/7", "fe80::/10" ], "outboundTag": "blocked" }] } } }# 红色部分的port及path需与第7步的一致,id可随便填或 https://1024tools.com/uuid 在线生成
保存文件之后,在ssh执行 systemctl restart v2ray 重启一下,然后 systemctl status -l v2ray 查看状态是否正常
电脑客户端的配置如下图所示(特别注意:端口应当写443而非9999)
OK,就这么愉快的搞定了!
==============
补充几个问题:
1、网上脚本 bash <(curl -L -s https://install.direct/go.sh) 执行后会提示:
ERROR: This script has been DISCARDED, please switch to fhs-install-v2ray project.
HOW TO USE: https://github.com/v2fly/fhs-install-v2ray
TO MIGRATE: https://github.com/v2fly/fhs-install-v2ray/wiki/Migrate-from-the-old-script-to-this
这是因为该脚本已经过期了,需要到 https://github.com/v2fly/fhs-install-v2ray 查看新脚本的使用说明。
2、新脚本 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
安装过后没有显示UUID、Port等信息,这是正常的,https://github.com/v2fly/fhs-install-v2ray 明确说明:
本專案不會為您自動生成配置檔案;只解決使用者安裝階段遇到的問題。其他問題在這裡是無法得到幫助的。 請在安裝完成後參閱 文件 瞭解配置檔案語法,並自己完成適合自己的配置檔案。
v4新版本就是这样,提高了v2ray的入门门槛,我个人感觉有利有弊吧。尊重作者的决定。
3、关于WordPress资源占用的问题
不得不承认,曾经128M内存就能跑wordpress的日子已经过去了,现在不只是wordpress越来越臃肿,mysql与php也是越来越臃肿,并且为了安全考虑我们不得不持续更新自己的wordpress并且使用较新版本的mysql跟php
(怀念64M搬瓦工的时代:https://www.mpyes.com/2015.05.22/22:54:00/1280)
对比而言,mysql其实是最耗资源的(wordpress跟php其实都还好)所以我512M的VPS只保留wordpress+php+v2ray我觉得是足够使用的,而mysql除了放到阿里云,还有一个思路就是放到另外一台VPS上(比如vir、rn等都经常有廉价的内存2G+的VPS销售,直接选择离搬瓦工DC6较近的机房即可)我测试了搬瓦工DC6到VIR洛杉矶的速度,ping值居然只有1ms左右,可惜我的VIR洛杉矶只有256M的内存,所以现在只有暂时使用阿里云的MySQL,等到今年黑五的时候再去闪购一个洛杉矶的大内存VPS吧。用阿里云目前最担心的就是哪天他们的服务器坏了导致数据丢失(虽然可能性很小),而自架VPS可以通过异地备份来解决数据的安全问题。
阿里云设置子用户AccessKey,分配权限只允许操作OSS的某一个Bucket
28 2 月 2021
前段时间将博客搬到了 RackNerd 的廉价VPS上面:https://www.mpyes.com/2021.02.24/23:51:25/2502
(2.5G内存,3T月流量,一年8美元,折合人民币52元,比阿里云要便宜太多太多了……)
RN的背景我并不清楚,考虑到他们的VPS比较廉价,所以意味着他们的利润也就比较低,所以理论上RN存在很大的跑路可能性,而对于一个博客来说数据肯定是相当相当重要的,所以就有了异地备份的必要性。
最简单的当属是安装宝塔控制面板用FTP插件进行异地备份,然而还要再去找一个美国的带FTP的空间还要评估所找空间的稳定性,所以多年之前我使用的这个方案肯定是已经落伍的了,现在我使用的方法是通过宝塔面板备份到阿里云跟Google这两个地方去,优点是价格低廉稳定性极高,缺点是几乎没有缺点!
宝塔面板的安装就不多说了,备份方法是先在软件商店安装“阿里云OSS、谷歌云网盘”这两个插件,然后对这两个插件进行设置,阿里云OSS要注意使用子用户AccessKey(下面会具体来说)谷歌云网盘这个非常简单按要求登陆Google账号然后将返回的哪个无法打开的URL复制粘贴到宝塔面板进行 Gogle Token 验证就可以了,设置完成后再在宝塔面板的计划任务中添加定时任务即可,我设置的是每12小时备份一次网站到阿里云OSS、每6小时备份一次数据库到阿里云OSS、每天凌晨0点备份一次网站到 Google Drive,每天凌晨1点备份一次数据库到 Google Drive(错时备份是为了降低VPS负载)
关于阿里云,许多人觉得AccessKey用起来那是相当方便,在第三方网站只需输入 AccessKey ID 及 AccessKey Secret,然后其它的事情都会自动完成,且忽视了这个自动完成是由第三方网站进行的,如果第三方网站存储了的你的AccessKey便可以通过AccessKey对你的阿里云账号进行其它操作,所以在每次操作AccessKey的时候阿里云都会弹出这个提示:
遗憾的,大部分人根本看不懂这段话所要表达的意思,都认为我申请AccessKey不就是为了能在第三方网站使用的嘛,而什么“使用 RAM 子用户 AccessKey 来进行 API 调用”这句话太专业了我也不懂什么意思,所以我还是选择“继续使用AccessKey”算了(即便选了“开始使用子用户 AccessKey”然后也大概率因为看不懂如果设置而回过头重新选择“继续使用AccessKey”)
子用户 AccessKey 的操作其实也不算太难,按提示先建立一个子用户 AccessKey,然后将 AccessKey ID 跟 AccessKey Secret 复制存档(忘记复制也没关系,随时可以再重建一组新的 AccessKey ID 跟 AccessKey Secret )添加成功之后就等于是有了一个没有任何权限的 AccessKey,然后打开用户清单中为它添加权限,每个权限基本都配有中文说明所以还是比较简单的,权限添加完毕之后就可以在第三方网站使用这组 AccessKey ID 跟 AccessKey Secret 进行操作了。
关于 AccessKey 的逻辑关系大概是这样的:
1、AccessKey 拥有阿里云账号的所有权限,子用户AccessKey拥有阿里云账号的部分权限(由用户自行指定)
2、每个子用户AccessKey 都有一个UID,在OSS后台还会显示它的“用户名”(用户名是可以修改的)
3、不管“AccessKey”还是“子用户AccessKey”,访问权限都是通过“AccessKeyID + AccessKeySecret ”验证的
(换言之:AccessKeyID + AccessKeySecret 用来得到 AccessKey 的 UID,然后阿里云赋予其此UID的权限)
再来说阿里云OSS的权限,即便是使用“子用户AccessKey”如果你为其添加的是预设权限里的 AliyunOSSFullAccess,那么它获得的权限就是整个OSS的操作,一旦第三方有了你的这组 AccessKeyID + AccessKeySecret 便可以访问你OSS里面的其它内容,而且还可以任意的删除添加,这相当的危险!
所以最理想的方法就是设置一个子用户AccessKey,让它只可以操作OSS里的某个Bucket,比如我新建了一个Bucket,它的名字是 bt-rn,专门用于存放RackNerd的数据备份,那么只需在AccessKey添加权限的界面点击“新建权限策略”策略名称可以随便设置比如我设置的是“bt-rn”,配置模式选择“脚本配置”,脚本内容输入如下:
{
“Version”: “1”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“oss:ListBuckets”,
“oss:GetBucketStat”,
“oss:GetBucketInfo”,
“oss:GetBucketAcl”
],
“Resource”: “acs:oss:*:*:*”
},
{
“Effect”: “Allow”,
“Action”: [
“oss:Get*”,
“oss:Put*”,
“oss:List*”,
“oss:DeleteObject”
],
“Resource”: “acs:oss:*:*:bt-rn“
},
{
“Effect”: “Allow”,
“Action”: [
“oss:Get*”,
“oss:Put*”,
“oss:List*”,
“oss:DeleteObject”
],
“Resource”: “acs:oss:*:*:bt-rn/*”
}
]
}
然后回到AccessKey添加权限界面,选择“自定义策略”,将上述策略添加给子用户AccessKey,然后将这个AccessKey的 AccessKey ID 跟 AccessKey Secret 输入到宝塔后台的阿里云OSS插件即可。
(在其它一些场合,比如nas文件同步到oss,比如wordpress图片上传oss插件等,也都是同样的道理)
记录一下今晚LEDE刷机
24 2 月 2021
手贱,升级lede的时候非要升级uefi,结果把硬路由给弄瘫痪了,然后只好熬夜修复,修好已经快1点钟了……
虽然待会还要洗澡,虽然明早6点半就要起床骑车,但还是趁着自己记得先做一下备忘录。
首先,这次给我的教训是升级的时候千万不要选“升级UEFI固件”,谨慎起见我觉得“强制重刷”也别去选,就简简单单的选择“保留配置”就ok啦,千万别强迫症泛滥否则后果真的很郁闷,应该本着只简单升级基础固件的原则。
其次,浪费很多时间的原因是,参考了这篇文章:https://www.mpyes.com/2019.08.04/23:59:00
本来以为可以轻车熟路,但正是因为过分自信了,所以下错固件了一直刷不成功,这篇文章没写清楚到底下载什么版本的固件,这里补充一下,必须要下载“虚拟机转盘或PE下写盘专用”目录下的 img.gz 文件然后解压缩获得 .img文件,
刷机过程其实很简单,准备一个PE盘,上网下载一个绿色版的DiskImage将它与固件.img文件一起放到PE盘里面,然后在PE下面将目标硬盘删除所有数据并保存(别分区),然后打开DiskImage 将.img写入目标硬盘即可(一般指电脑硬盘)
(切记:下载地址首页的 openwrt-koolshare-mod-v2.36-r14941-67f6fa0a30-x86-64-generic-squashfs-combined-efi.img.gz 虽然解压可以得到一个.img,虽然也能用它正常写盘,但是最后是无法正常启动的!!)
图片存储方案切换到了阿里云OSS+CDN
19 2 月 2021
博客图片方案之前使用的是腾讯云的COS+CDN,因为老账户每月都有一些免费额度:
CDN内容分发:
流量:10GCOS对象存储:
标准存储请求:200万次
标准存储容量:50G
外网流出流量:10G
CDN回源流量:10G
但是使用过程中发现:当某张网页加载十几张或几十张图片的时候,会出现部门图片加载不出来(右击图片重新加载可以正常显示)估计是一次性请求太多数据,触发了腾讯云某些限制。所以这次博客调整的时候,我直接将图片放到了闲置的阿里云独享虚拟主机基础版上面(5M独享带宽),然后测试了下发现加载太多图片的时候效果依旧不太理想,于是就套了阿里云CDN,但感觉未缓存的情况下速度依旧不太理想,我猜测可能是5M独享带宽也无法顺畅支持同时加载多张图片的需求。
于是,今天下午将图片数据迁移到了阿里云的OSS并配合CDN,记录一下大概步骤:
1、在 OSS 新建一个 Bucket(读写权限选择私有)
2、在 CDN 添加域名,源站信息选择刚才新建的 OSS域名,端口选择80 (此步骤会自动为OSS添加域名)
3、在 CDN 回源配置==>>私有Bucket回源,务必添加角色授权(否则CDN没有权限去OSS读取数据)
4、在 OSS 传输管理==>>域名管理,开启 CDN 缓存自动刷新,然后在 CDN 将缓存时间设置为一年或者更久
好了,OSS+CDN 配置就这么愉快的完成了(非阿里云域名要多一步域名解析的操作)接下来就是操作数据了,我的方案还是通过群晖NAS:直接新建一条 Cloud Sync 同步规则,将NAS上的博客图片备份文件夹同步到阿里云OSS的Bucket,然后NAS便自动将数据同步到阿里云OSS,同时后续我发布新日志的图片也会实时同步到阿里云OSS(我发布博客的图片是通过Live Writer 自动 FTP 到群晖NAS指定文件夹,相当的方便)
================
关于费用问题:
1、阿里云OSS
a. 40G存储包价格目前是9元/年,对于我的博客来说足够了
b. CDN回源流量价格是0.15元/GB(流入到OSS的流量是免费的,但OSS流出到CDN是收费的)
c. 请求费用0.01元/万次(对于小博客来说可以忽略,每小时结算一次大部分时候都是0元)
2、阿里云CDN
a. 静态HTTPS请求费用0.05元/万次(对于小博客来说可以忽略,每小时结算一次大部分时候都是0元)
b. 大陆地区的流量费用是0.24元/GB(觉得不够的话可以开通18元包年的100G流量包)
c. 海外地区的流量费用是0.46~1.31元/GB不等(为了照顾国际友人,我暂时开着,反正用到的概率不大。有异常再关)
3、阿里云OSS+CDN
a. OSS与CDN的流入流量都是免费的,但流出流量都是收费的,所以不考虑海外,每GB的流量价格是(0.15+0.24)元
b. 假设每天1G流量,一年费用就是142元(开套餐更便宜)OSS+CDN如此大带宽的速度,要比虚拟主机划算很多
c. 如果CDN设置仅大陆加速,那么海外地区流量将直接走OSS出来,但因为权限问题,所以会无法显示(反之毅然)
d. 如果担心海外流量超标但又希望海外能看到图片,可以将Bucket设置为公有读取权限(如果要设置防盗链,会有影响)
e. 对于海外流量问题,有个折中的办法:弄一个规则将图片文件夹的数据同步到另外一台美国服务器,域名分区域将海外用户解析到美国服务器,如果要提高速度还可以套cf(需要使用 CloudFlare Partner 达到无需修改ns使用解析的目的)
=======================
update 2021/2/20
1、关于腾讯云COS的免费额度
到腾讯云的后台仔细看了下,发现从去年10月起,COS一次性送了50G标准存储容量+200万次标准存储请求+10G CDN回源流量+10G外网流出流量(我记不清以前是不是按月赠送的了)不过这也很良心了,50G的存储容量是非消耗品,配合群晖NAS的 Cloud Sync,放一些重要文件的备份,也是很不错的用途(与阿里云OSS一样,COS的流入流量是免费的)
2、关于阿里云OSS+CDN的海外加速
开启全球加速:海外IP及大陆IP均可以正常访问
开启大陆加速:海外IP及大陆IP均可以正常访问,我猜测是不是海外IP访问直接读取OSS数据,但是不走CDN节点?
开启海外加速:海外IP及大陆IP都无法正常访问(均提示 ERR_HTTP2_PROTOCOL_ERROR 该页面可能存在问题,或者已永久移动到新的网址)我也不知道为啥……