一台Mac上部署多个Next.JS项目绑定多个Cloudflare Tunnel域名对外提供互联网服务

1、Mac上安装cloudflared

brew install cloudflared

检查版本信息
cloudflared --version


2、登录cloudflare

cloudflared tunnel login

它会:

  • 自动打开浏览器
  • 让你登录 Cloudflare
  • 选择你的域名

完成后:

Cloudflare 会在:

~/.cloudflared/

生成认证文件。


异常处理:
如果系统提示已经存在了cert.pem文件,则在命令行中删除此文件即可:

rm /Users/frank/.cloudflared/cert.pem


(其中frank是您当前Mac的用户名,根据实际修改即可)

3、创建Tunnel连接器


cloudflared tunnel create nextjs-app

成功后会得到:

Tunnel credentials written to:
~/.cloudflared/xxxxx.json

以及:

Created tunnel nextjs-prod with id:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx

记住这个 Tunnel ID。


4、修改config.yml配置文件(~/.cloudflared文件夹下)

tunnel: 你的TunnelID
credentials-file: /Users/你的用户名/.cloudflared/xxxx.json

ingress:
  - hostname: app1.frank2000.uk
    service: http://localhost:3000

  - hostname: app2.frank2000.uk
    service: http://localhost:3001

  - service: http_status:404


5、绑定DNS域名


绑定的域名必须是之前没有绑定过的,如果已存在,要先删除之前的域名

cloudflared tunnel route dns nextjs-app app1.frank2000.uk

cloudflared tunnel route dns nextjs-app app1.frank2000.uk


特殊情况:
如果报错:

Failed to add route: code: 1002, reason: Tunnel not found


则不要用别名启动,改为用ID启动,如:

cloudflared tunnel route dns 02e11102-215f-467b-9e3d-535f01d218dc app1.frank2000.uk


6、启动Tunnel

cloudflared tunnel run nextjs-app


7、浏览器访问两个域名即可!


app1.frank2000.uk

app2.frank2000.uk








评论

此博客中的热门博文

通过命令行在Github上发布项目的新版本

利用GitHub免费的静态页面托管空间发布网页

本地部署OpenAvatarChat实时交互数字人系统