Caddy服务器快速上手

Install — Caddy

安装稳定版本

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

默认安装配置的 Caddyfile 配置文件在 /etc/caddy/Caddyfile 中。

Getting Started

安装好之后,可以通过运行 caddy 来查看帮助命令。 通过 caddy run 后台运行,caddy start 可以前台运行。

通过api来设置

通过api的方式可以查看caddy的配置信息

# 查看caddy的配置
curl localhost:2019/config/

也可以更新配置信息,比如下面的json中

{
   
  "apps": {
   
    "http": {
   
      "servers": {
   
        "example": {
   
          "listen": [
            ":2015"
          ],
          "routes": [
            {
   
              "handle": [
                {
   
                  "handler": "static_response",
                  "body": "Hello, world!"
                }
              ]
            }
          ]
        }
      }
    }
  }
}

保存文件名为 caddy.json。 则可以运行如下命令更新配置

curl localhost:2019/load \
	-H "Content-Type: application/json" \
	-d @caddy.json

通过caddyfile来设置

上面用 JSON 编写的相同配置可以简单地表示为:

:2015

respond "Hello, world!"

保存文件名为 Caddyfile (没有文件后缀),通过运行 caddy adapt 来将 Caddyfile 转换为 Caddy 的原生 JSON 结构。

# 也可以指定配置文件路径
caddy adapt --config /path/to/Caddyfile

通过API的方式更新配置,可以实现0服务宕机时间,通过caddyfile的方式,可以 caddy reload 来重新加载。

两种方式的更多的比较可以参考 api-vs-config-files

常用应用的配置

下面以静态文件,反向代理的配置

静态文件

下面我们可以通过一个命令行,可以快速的启动给一个静态文件服务器(生产可用)。

root@xxx:~# caddy file-server --listen :8080 --browse --root /var/www/mysite

其中的参数中:

  • --browse 表示如果没有索引文件,但想要显示文件列表
  • --root 指定静态网站跟路径,默认是运行命令所在的当前目录

对应的 Caddyfile 配置如下

:8080

root * /var/www/mysite
file_server

更多的语法参考 file_server (Caddyfile directive)

反向代理

通过一个命令行开设置,要在计算机上启动从端口 2080 到端口 9000 的纯文本 HTTP 代理:

# 简单的端口转发
caddy reverse-proxy --from :2080 --to :9000

# 从域名到某个端口
caddy reverse-proxy --from example.com --to :9000

# 从域名到域名,并且https转发
caddy reverse-proxy --from :2080 --to https://localhost:9000

更多关于 reverse-proxy 命令 参考

caddy reverse-proxy \
	--from example.com \
	--to https://localhost:9000 \
	--change-host-header

默认情况下,Caddy 会原封不动地传递所有 HTTP 标头,包括 Host ,并且 Caddy 从 Host 标头派生 TLS ServerName。将 --change-host-header 主机标头重置为后端标头,以便 TLS 握手可以成功完成。在上面的示例中,它将从 example.com 更改为 localhost:9000 (并将 localhost 在 TLS 握手中使用)。

简单的对应文件 Caddyfile 的内容:

:2080

reverse_proxy :9000

Caddyfile 教程

本教程将教您 HTTP Caddyfile 的基础知识,以便您可以快速轻松地生成美观、功能强大的站点配置。

相关推荐

  1. Caddy服务器快速

    2023-12-08 08:46:02       38 阅读
  2. Ubuntu+Caddy:免费服务器部署WordPress!

    2023-12-08 08:46:02       14 阅读
  3. Caddy实践 | Docker环境下使用Caddy快速部署web服务器

    2023-12-08 08:46:02       11 阅读
  4. Electron快速

    2023-12-08 08:46:02       39 阅读
  5. Restify快速

    2023-12-08 08:46:02       28 阅读
  6. Linux 快速

    2023-12-08 08:46:02       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 08:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 08:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 08:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 08:46:02       20 阅读

热门阅读

  1. 【Angular开发】Angular:2023年最佳实践

    2023-12-08 08:46:02       36 阅读
  2. 用c#实现记事本的功能

    2023-12-08 08:46:02       31 阅读
  3. KVM迁移

    2023-12-08 08:46:02       22 阅读
  4. vue3在table里使用elementUI的form表单验证

    2023-12-08 08:46:02       40 阅读
  5. Boost:asio单io_service,多线程run

    2023-12-08 08:46:02       28 阅读
  6. C++设计模式学习之一(共计13种)

    2023-12-08 08:46:02       32 阅读
  7. LISP~~~~~

    2023-12-08 08:46:02       37 阅读
  8. Spring Kafka常用配置详解

    2023-12-08 08:46:02       33 阅读
  9. c++通过serial库进行上下位机通信

    2023-12-08 08:46:02       40 阅读