在 SpringBoot 项目中使用 Caddy
Caddy 是一个用 go 语言写的代理服务,类似 Nginx 但是从配置文件来说比 NGX 要方便不少,并且自带 https 的支持以及到期自动续期。
话不多说用 SpringBoot 的项目来举个如何部署项目的例子。
- 上 Caddy 的官网 下载 编译好的二进制文件,注意选择部署的机器。
想自己编译的话也可以从 Github 把代码下回来自己编译。 - 下载回来的文件「caddy」放到服务器上,然后设置该文件权限为「744」
chmod 744 ./caddy
。运行./caddy help
确认该文件可执行。 - 在「caddy」的同目录下生成配置文件「Caddyfile」(该配置文件所在目录可按需求修改,为了方便部署这次是在同目录下生成)。
文件内容根据下面给出的注释进行修改。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{
# 全局配置,关闭 admin endpoint
admin off
}
# 需要部署的端口号,支持域名。不需要用默认的HTTPS的证书的话需要单独配置HTTPS证书
:8300 {
# 前端编译后代码所在目录,这里 SpringBoot 使用的是前后端分离的方式
root * /home/www-user/opt/springboot-vue-dist
# 代理前端所有「/api」的请求
handle_path /api/* {
# 「apicontext」是 SpringBoot 项目的 context-path
rewrite * /apicontext/{path}
# 需要代理到的IP以及端口号
reverse_proxy http://localhost:8080
}
# 开启压缩
encode gzip
# 固定写法(??)
file_server
} - 运行
./caddy adapt --config ./Caddyfile
查看配置文件是否有问题。 - 运行
./caddy start --config ./Caddyfile
让其在后台运行。 - 其他命令请参照官方文档。
EOL