发布于:,更新于:

使用 Caddy 部署 Vue 等单页面Web应用

安装 Caddy

Caddy 是一个 Go 语言编写的开源 HTTP 服务器

Caddy 有下面这些开箱即用的特性:

  • 全自动支持 HTTP/2 协议,无需任何配置。
  • Caddy 使用 Let’s Encrypt 让你的站点全自动变成 HTTPS,无需任何配置。
  • 合理使用多核多核 得益于 go 的特性
  • 完全支持 IPv6 环境
  • Caddy 对 WebSockets 有很好的支持
  • 自动把 Markdown 转成 HTML
  • Caddy 对 log 格式的定义很容易
  • 易于部署 得益于 go 的特性,caddy 只是一个小小的二进制文件,没有依赖,很好部署
  • 得益于 Go 的跨平台特性,Caddy 很容易的支持了三大主流系统:Windows、 Linux、Mac
    来自 知乎 @shooter

本文配置 均使用 Caddyfile 文件

基本配置

HTTP + HTTPS

1
2
3
4
moieo.cn {
root * /srv/http # 网站根目录
file_serve # 启用文件系统
}

HTTP

1
2
3
4
http://moieo.cn {
root * /srv/http # 网站根目录
file_serve # 启用文件系统
}

反之只用 HTTPS

Vue 等单页面应用部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
moieo.cn {
root * /srv/http # 网站的根目录
encode gzip zstd # 开启 gzip

route {
# 找不到文件时 使用 index.html
# 解决 history 路由模式 404 的问题
try_files {path} /index.html
file_server # 开启文件系统
}

# 处理日志
log {
output file /data/moieo.cn.log # 保存文件
format console # 日志格式
level INFO # 日志级别
}
}

开启 Caddy

文档

中文文档访问速度快