前言#
因為將東西運行在自己的伺服器上可能會因為伺服器到期、被攻擊或者自己不小心折騰壞環境等原因,導致自己的网站下線。我追求的最快的速度與穩定性,使用 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 閱讀器 、公共圖床上傳 API 、Umami 網站統計 、天氣查詢 、Pixiv Now 、留言板 、博客文章 AI 簡介生成。
以上應用均使用 阿里雲DCDN
或 騰訊雲ECDN
進行加速作為中間源加速搭配自建 CDN 進行加速,AI 生成項目是對接 Replicate 進行生成,搭配 Upstash 進行速率限制每個人每天的生成次數,OpenGPT 使用了 Planetscale 資料庫,AI 法律助手使用 Supabase 儲存法律資料,公共圖床的上傳接口:GitHub。留言板是 PHP 輕量級應用,資料庫使用 Neon。因為 Vercel 有基本的 PHP 托管能力,所以一些輕量級 PHP 應用我也托管在上面,比如 Meting-api 、BiliVideo 解析,還有本博客的評論系統等。
Railway#
部署 Sub 訂閱 、Umami 資料庫、直播彈幕伺服器等,使用 阿里雲DCDN
或 騰訊雲ECDN
進行加速作為中間源加速搭配自建 CDN 進行加速。
因為 Railway
和 Fly.io
一樣不會休眠,所以會部署一些小程序上去運行。但是它只有美國地區,而 fly.io
的是全球性的。
Koyeb#
公共 RSSHub 服務,使用 CloudFlare
與 百度雲CDN
。
免費只有 1H512M,運行 RSSHub 馬馬虎虎。
騰訊雲 SLS#
部署 Music 的 API 服務,使用 阿里雲DCDN
進行全球加速。
其中一些代理程序部署在騰訊雲函數內,比如用於 B 站番劇解鎖的泰國代理和香港代理。
Replit#
部署 WebProxy 和 Mikuinvidious,使用 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。支持加速 jsdelivr、mapbox 、unpkg 、baomitu 、gravatar 、staticfile、google ajax 、gthemes 、cdnjs 、google fonts 、alifonts 、html2canvas 、我的私人圖床 等,使用 OSS 鏡像回源永久存儲,並且使用 OSS 全地域加速進行跨境加速。
采用邊緣腳本進行 ref 檢測等操作:
# 單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
如果想要某些服務的搭建教程,可以評論,有空我會寫。