前言

因为把东西运行在自己的服务器上可能会因为服务器到期、被攻击或者自己不小心折腾坏环境等原因,导致自己的网站下线。我追求的最快的速度与稳定性,使用PaaS平台可以满足我的需求。

本站所使用到的PaaS平台

Web

数据库

服务

Fly.io

fly.io上部署了 Alist瓦罗兰特商店查看WebSSH。Alist部署教程在这篇文章内,然后流量经过 阿里云DCDN腾讯云ECDN 进行加速作为中间源加速搭配自建CDN区分路由运行,在全球延迟内都非常低。
还有一些零零碎碎的Docker服务也部署在上面。

Vercel 与 Netlify

vercel上部署的项目有点多,比如 AI生成动漫图AI年龄推断AI图片修复使用AI通过文字修改图片通过涂鸦AI绘画OpenGPT应用AI法律助手AgentGPT明日方舟工具箱Render阅读器公共图床上传APIUmami网站统计天气查询Pixiv Now留言板 、博客文章AI简介生成。

以上应用均使用 阿里云DCDN腾讯云ECDN 进行加速作为中间源加速搭配自建CDN进行加速,AI生成项目是对接 Replicate 进行生成,搭配 Upstash 进行速率限制每个人每天的生成次数,OpenGPT使用了 Planetscale 数据库,AI法律助手使用 Supabase 存储法律数据,公共图床的上传接口:GitHub。留言板是PHP轻量级应用,数据库使用 Neon 。因为Vercel有基本的PHP托管能力,所以一些轻量级PHP应用我也托管在上面,比如 Meting-apiBiliVideo解析,还有本博客的评论系统等。

Railway

部署 Sub订阅 、Umami数据库、直播弹幕服务器等,使用 阿里云DCDN腾讯云ECDN 进行加速作为中间源加速搭配自建CDN进行加速。
因为 RailwayFly.io 一样不会休眠,所以会部署一些小程序上去运行。但是它只有美国地区,而 fly.io 的是全球性的。

Koyeb

公共 RSSHub 服务,使用 CloudFlare百度云CDN
免费只有1H512M,运行RSSHub马马虎虎。

腾讯云SLS

部署 Music 的API服务,使用 阿里云DCDN 进行全球加速。
其中一些代理程序部署在腾讯云函数内,比如用于B站番剧解锁的泰国代理和香港代理。

Replit

部署 WebProxyMikuinvidious,使用 Gcore百度云CDN/BunnyCDN 区分国内海外进行加速。

CloudFlare Workers

部署 Url短链接Github下载加速ChatGPT 等项目。

CDN加速

moeyy.cn 采用自建CDN进行加速,采用 Hexo 框架,代码更新到Github后自动构建然后部署到阿里云OSS上,CDN服务器采用 阿里云ECS/Azure/AWS/Vultr/Digitalocean 等。本站大部分服务都部署在海外,但是国内速度也非常快也是归功于中间源是 阿里云DCDN腾讯云ECDN

cdn.moeyy.cn 国内使用阿里云CDN,海外CloudFlare。支持加速 jsdelivrmapboxunpkgbaomitugravatarstaticfilegoogle ajaxgthemescdnjsgoogle fontsalifontshtml2canvas 、我的私人图床 等,使用OSS镜像回源永久存储,并且使用OSS全地域加速进行跨境加速。
采用边缘脚本进行ref检测等操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 单IP速率限制10m/s
limit_rate(10, 'm')

# 禁止海外访问,因为海外使用Cloudflare,所以阿里云CDN屏蔽海外访问防止有人恶意hosts到阿里云海外节点刷流量。
if not(match_re(client_region(), '370000|450000|310000|230000|540000|440000|120000|150000|340000|330000|530000|630000|320000|620000|420000|410000|360000|210000|640000|110000|460000|130000|510000|500000|610000|220000|140000|650000|350000|430000|520000')) {
add_rsp_header('X-REGION-BLOCK', concat('hit region_region:', client_region()))
exit(418)
}

#排除 /no_referer 路径进行ref鉴权验证,并允许ref为空。/no_referer则不受ref来源检测。
if not(match_re($uri, '^/no_referer')) {
moeyy_ref = req_header('Referer','re:^(https?:\/\/)?([\w-]+\.)?(moeyy\.cn|moeyy\.xyz)') #正则匹配ref包含moeyy.cn和moeyy.xyz
null_ref = req_header('Referer','re:(.)') #正则匹配ref包含 ".",用于检测是否ref为空
if null_ref {
if not(moeyy_ref) {
exit(403)
}
}
}

以上仅一部分服务,更多的服务可以查看 moeyy.cn/app

如果想要某些服务的搭建教程,可以评论,有空我会写。