Typecho站点优化及网站宕机事故

网站 · 2023-07-10 · 333 人浏览
Typecho站点优化及网站宕机事故

起因

此站点原先托管在Vercel,数据库由Railway提供,本来以为能够无限白嫖,直到——
Railway
Railway更新了他们的政策,把每月免费5美元额度改为了一次性2美元额度,或者提供信用卡升级计划。
再加上原本站点的速度就不快,于是更换服务的想法就产生了。

探索

DNS

迁移一个站点首先要更改DNS解析,这个域名是在腾讯云注册的,当时接入的是Cloudflare做解析,但是效果不是很理想,借这次机会,接入到了华为云解析。

Why? 请看对比。

服务商DNS节点分线路解析TTL价格
DnsPod免费:8个 付费≥12个支持免费:600s 付费:60s/1s专业版99元/年/个 企业版1800元/年/个
华为云≥16个支持1s免费
阿里云免费:4个 付费:国内9个,海外11个支持免费:600s 付费:1s个人版48元/年/个
Cloudflare≥20个(国内节点少)不支持60s免费

综上,选择华为云DNS白嫖是最佳选择!

但是接入华为云DNS解析后,怪事就发生了——
Status Page可以看到,我的所有域名服务被检测到Dns Lookup Failure错误。

Dns错误

翻来覆去,想了俩天,终于发现是迁移之后原先在Cloudflare的DNSSEC忘记删除了,导致权威DNS与Local DNS校验失败。

在腾讯云删除掉该DNSSEC后:
Dns正确
问题告一段落。

部署

此域名未备案,自然也就不可能解析到我境内的服务器上...吗?大错特错!(小声:我们可以伪造请求绕过备案)

从Railway拿完数据库,导入,服务器新建域名解析,一气呵成。新建域名为localhost,域名别名为baidu.com(需要备案的域名),根目录设在typecho目录下,安装php,然后给这个域名随便上一个https证书。

接下来我们需要境外的CDN(使用CF理论也可以完成操作),我选择的是微软云(不信你ping一下www.starsriverorg.cn),使用cname接入域名即可,接入之后代理主机设置为baidu.com,接入后我改成了A记录,因为这样可以自选ip。

在cf也加入这个域名的解析,解析到cdn,勾选代理,然后同样A记录自选ip。

最后,在华为云解析分线路,国内直接解析到微软云上,国外走cf的线路,搞定。看看效果:
测速

优化

我仍不满足,为了国内的速度,新建了个域名lead.uotan.cn,与此域名同时启用。

但是当我访问新站点时,发现字体并没有生效。
在控制台中,找到如下错误:

Access to font at 
'https://www.starsriverorg.cn/usr/
themes/Jasminemain/assets/dist
/font/HarmonyOS-Sans.woff2' from 
origin 'https://lead.uotan.cn' has 
been blocked by CORS policy: No 
'Access-Control-Allow-Origin' header 
is present on the requested
resource.

跨域问题🤔
我的解决方案是:

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }
    add_header Access-Control-Allow-Origin * ;
    add_header Access-Control-Allow-Methods * ;
    add_header Access-Control-Allow-Credentials true;
}
location ~* \.(eot|otf|ttf|woff|woff2|svg)$ {
    add_header Access-Control-Allow-Origin * ;
}

再把一些图片换成webp格式放cdn上,这样可以加快速度。用到的网站:Webp转换
累死,优化完成。


萌ICP备20231631号