部署一台正式环境的 Caddy

2024-03-10 · 周日一般中雨

公司要整一个国内站点拿去做各种备案,因此我拿到了一台 Ubuntu 的机器,目标是简单配置一个 SSR 的官网。我首先装了 neofetch 查看系统配置,以及安装 NodeJS 环境,后期就可以快速跑起来服务运行。考虑到网站要上 SSL 证书,以及多站点托管,就想着上一个 Caddy 试试看。由于不需要跑 PHP 什么的后端,就没用安装脚本自己来了。

安装过程基本按照 官网文档 来,设置完 APT 源就可以直接装,装完默认是以高权限进程级别运行(因此开机也会自启)。安装的下一个章节就是“开始使用”,此时 文档内容 并没有和前面安装的部分直接对应上,那里是以当前用户的身份去启动的,导致我误解了很久。其实直接 curl localhost:80 就能看到对应的说明,直接修改 CaddyFile 就可以用了。

部署 Caddy 的时候主要遇到的错误都是和权限有关系,一个是 SSL 证书的权限,一个是根目录的权限,我本来想放在 ubuntu 家目录的,尝试了很久发现由于进程默认是 root 身份打开,则必须放在 root 能直接访问的地方才行(它默认给的配置文件在 /etc/caddy/Caddyfile,而网站内容目录则是在 /usr/share/caddy 下),我把证书的文件也丢在了 CaddyFile 的旁边,而修改 CaddyFile 则是 这种格式

example.com {
        tls cert.pem key.pem
}

接下来就是把项目在服务器上跑起来,使用 pm2 启动,再加上 301 到 www 域名以及反向代理,就基本完成,非常简单。

// ecosystem.config.cjs
module.exports = {
  apps: [
    {
      name: "Remix",
      script: "pnpm start",
      env: { PORT: 5001 },
    },
  ],
};
// CaddyFile
paul.me {
        tls paul.me.pem paul.me.key
        redir https://www.paul.me
}

www.paul.me {
        root * /usr/share/caddy
        tls paul.me.pem paul.me.key
        encode zstd gzip

        file_server
        reverse_proxy 127.0.0.1:5001
}
Paul

Paul

特立独行的一只前端菜狗。这篇日记编写大概耗时了 13 分钟,内容均为个人原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?

近期评论

鲍小螺: 前辈多多指教!ahu: 后生可畏寻梦xunm: 真不错,板子很好看。timochan: 太惨了( ,更新暴毙,如果恢复没成功,数据也 dump 不出来鲍小螺: 在这部分对话中,广树和保罗继续讨论生活的不同方面。保罗提到了技术更新和国内的优秀 IT 技术。广树解释了在国内积累的经验如何在日本产生穿越的感觉,并表达了对于日本生活节奏的喜爱。他还提到了医疗水平的差异和对于生活方式的感受。保罗表示,通过动漫和现实的对比,艺术来源于现实,日本生活的确有着独特之处。他们讨论了国内的生活节奏和就医等方面的压力,以及个人选择的自由。最后,他们也谈到了不结婚不买房的选择和对于房价的困扰。鲍小螺: 该对话进一步讨论了房地产和税收的问题。保罗提到了国内的房地产税和增值税以及日本的固定资产税。广树解释了日本房地产税的收取方式,以及房产税对于国内房产的影响。他认为,与国内相比,日本的房子质量和服务更好。保罗提出疑问,为什么自己拥有的地也要交税。广树解释了类似增值税的原理,并指出在日本拥有房产是稳定安全的。最后,保罗表示从广树的角度来看,情况确实是如此。鲍小螺: 这篇文章的聊天记录也尝试过用 GPT 总结,结果并不是太好,不知道是不是 Prompt 的问题,实际出来的内容过于简练了,于是又耗费了半小时写完,呼~
奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君