最近这段时间脑子奇怪的想法总是很多,可能是出于对未来的焦虑吧,老是想着搞一下奇奇怪怪的副业,满脑子就是想着搞钱搞钱。
然后我搞了播客(喜马拉雅),又又又折腾起了我的小程序,得益于cursor,改的还挺好看的。
作为一个程序员,最开心的事情肯定还是别人用自己的产品,喜欢自己的产品,每天看着后台的数据就是沉思,为啥没有用户。哭唧唧
我在某乎开了一个专栏,打算专门写一点关于副业探索的问题。
而在这里,主要还是写一些代码相关的东西,这个系列,我打算用来写一些关于cloudflare的东西。
关于cloudflare
其实我一直都有在各个平台看到有朋友在说cloudflare,什么赛博活菩萨,什么“免费的 CDN 圣母”,搞得我一度以为这是个慈善组织。
这几天体验了之后,我只能说:牛逼!
买家不用花钱,卖家还得感恩。
从 CDN 加速、DNS 服务、WAF、防御 DDoS,到 Pages、KV、D1 数据库、Workers、R2 存储,Cloudflare 的一整个产品线就像一个开发者乐园,而且还是免门票的。你想部署前端?用 Pages。你想搞无服务器?Workers 走起。你想读写存储?KV、R2、D1 任你选,免费额度多到离谱,实在是“开卷之王”。
为啥用cloudflare
小胖大概从18年就开始折腾服务器,网站了。比起阿里云,一直比较喜欢用腾讯云,觉得腾讯云的界面好看一点。。
我现在这个网站、小程序啥的也都是用的腾讯云,可以说是腾讯云的铁粉了~
用cloudflare,当然是为了扬帆出海!我整了一个海外的域名,想着搞一些有趣的东西~
cloudflare是真的很好,用过之后的感受就两个字:舒坦。
不过worker搞着搞着又让我想起了早几年在腾讯云折腾无服务器云函数的时光。。(当时也是想着白嫖~)
worker自定义路由
OK,说会这篇文章的主题:cloudflare的workers怎么配置自定义域名和路由。
下面我的域名统一写成 aaa.com,便于理解
先说说背景
我是有一个worker跑了一个静态页面,挂在了 aaa.com下面,然后我新开了一个工具静态页面,是一个新项目,想着把这个项目挂在aaa.com/tools/xxx 下面
这个其实比较好弄的,我们可以在worker的设置这里添加一个路由。
路由的配置如下:
区域选择你绑定好的域名,然后重点是下面的路由要把这个域也填上,而不能只写路径。
比如我的是aaa.com,那么这个路由要填aaa.com/xxx/xxx
这样才能正确添加。
这里还有一个注意的地方,添加路由这个功能只有workers才能,pages是不行的。
不过我们也可以在worker的wrangler.jsonc配置上面加上routes来实现这一步~
{
"name": "你的worker名称",
"compatibility_date": "2025-05-21",
"assets": {
"directory": "./out" // 这个是我nextjs部署的输出文件夹
},
"routes": [
{
"pattern": "aaa.com/xxxx/xxx*",
"custom_domain": false
}
]
}
主项目的sitemap加上子项目的页面
nextjs项目的sitemap怎么自定义一个子项目的链接?
我的主项目里面配置了next-sitemap,现在是加了一个子项目,然后子项目单独部署了一个worker和路由到aaa.com下面,所以现在aaa.com/sitemap.xml 这个里面是不包含子项目的页面的,这个对于爬虫来说是不太友好的。
我们可以修改主项目next-sitemap.config.js,把子项目的路径加进去~
module.exports = {
siteUrl: 'https://findaitools.site',
generateRobotsTxt: true,
changefreq: 'daily',
priority: 0.7,
sitemapSize: 9999,
robotsTxtOptions: {
policies: [
{
userAgent: '*',
allow: '/',
},
]
},
generateIndexSitemap: false,
outDir: './out'
};
/** @type {import('next-sitemap').IConfig} */
module.exports = {
siteUrl: 'https://findaitools.site',
generateRobotsTxt: true,
changefreq: 'daily',
priority: 0.7,
sitemapSize: 9999,
robotsTxtOptions: {
policies: [
{
userAgent: '*',
allow: '/',
},
]
},
generateIndexSitemap: false,
outDir: './out',
additionalPaths: async (config) => {
const result = []
// 添加新的子项目路由
result.push({
loc: '/xxx/xxx/',
changefreq: 'daily',
priority: 0.7,
lastmod: new Date().toISOString(),
})
return result
},
};
当前流量
贴一下当前的流量,这个外站的域名才注册几天,不过看起来好像还不错,希望能好起来吧。
结语
我仍然在探索,在踩坑,希望能有收获吧,也希望看到这篇文章的朋友也能得偿所愿。
关注我,不迷路!也欢迎大家关注我的公众号《编程挺好玩》,交流讨论更方便~