type
status
date
slug
summary
tags
category
icon
password
上次编辑时间
May 15, 2024 04:53 AM
创建时间
Jan 6, 2024 06:34 AM
参考链接

准备

  • 一台云服务器
  • 一个域名

安装

我使用的是ubuntu系统,对应命令为
以下 caddy -h 命令输出,翻译为ChatGPT生成
原文内容
中文内容

使用

如何运行?

当使用 caddy start 时, 加载配置文件需要使用API接口,也就是2019 端口
基础操作(先运行 caddy start):
  • 查看当前配置信息
    • 加载配置文件
      • 直接加载json
        加载 caddy.json 文件
        • caddy.json 内容
          •  
        加载 Caddyfile
        • Caddyfile
          •  
    关闭caddy
    当下次 caddy start 时,还是会继续加载上一次停止前的配置
     

    文件服务器

    caddy 开启静态资源服务器有一个ui界面
    • 在终端中,切换到站点的根目录并运行
    • 此时打开2015 端口,没有显示任何东西
    • 可以添加 --browse 参数,可以显示文件列表
    • 如果需要指定哪一个目录为根目录
     
    使用 Caddyfile
    • 确保caddy stop
    • 创建 Caddyfile
    • Caddyfile 同一路径运行 caddy run ,caddy 会默认使用 Caddyfile
    • 此时caddy是运行在前台,想要运行在后台就先 caddy start ,然后使用下面的curl命令指定更新配置文件
    • 记住 caddy start 后如果要终止运行 就要运行 caddy stop
     

    反向代理

    使用命令行(会在前台运行)
    8080端口反向代理到2080端口
    使用域名,会默认升级为 https 协议
     
    使用 Caddyfile
    在当前工作目录中,创建一个名为 Caddyfile 的文件,其中包含以下内容:
    然后,从同一目录运行:
    访问 2080 端口
    使用域名
    caddy run 后访问 caddy.example.com
     
     

    Caddyfile 多个站点

    到目前为止我们的 Caddyfile:
    相当于这个:
    创建多个站点实例如下

    对于反向代理的看法以及研究

    在遇见、学习以及使用caddy的时候,我都有一个目的,那就是利用他的反向代理。在最初学习时,尝试过很多配置,以为caddy的反向代理并不能代理非本机的服务,只能代理与本机有关的端口以及域名。后来经过查找大量资料,发现,是可以代理其他的服务的,但会被被代理的服务所限制
    例如以下 Caddyfile
    代理bilibili的时候,发现能代理成功,但是由于b站还使用了其他跨域的接口,那些不方便代理,只出现了一个b站的logo,加上也是初学,编辑caddyfile的语法也有问题
    但是正常来说,按照上面的配置格式是可以实现反向代理的
    目前我发现的比较重要的点是需要设置 Host