前言
在上一篇文章中我们通过 Docker Compose 搭建起了一套生产级别的 Sentry 系统,但我们现在希望能够直接通过域名访问 Sentry 的管理系统。可能很多同学会想到使用 Nginx 或 Traefik 来进行反向代理,但我今天会推荐一个更加简单易用的工具 —— Caddy。
Caddy
Caddy 是什么
Caddy 是一个多功能的 HTTP web 服务器,并且使用 Let's Encrypt 提供的免费证书,自动让网站升级到 HTTPS
Caddy 特点
- 缺省启用 HTTP/2 协议,无需任何配置。
- 缺省全站 HTTPS,无需任何配置。(自动申请和续期证书)
- 简单友好的配置文件,支持在线配置 API。
- Golang 开发,几乎无依赖,部署简单。
- 充当 API Gateway, 反向代理后端多个 Web 节点。
Caddy 安装
Fedora RHEL/CentOS 8
$ dnf install 'dnf-command(copr)'
$ dnf copr enable @caddy/caddy
$ dnf install caddy
RHEL/CentOS 7
$ yum install yum-plugin-copr
$ yum copr enable @caddy/caddy
$ yum install caddy
Debian Ubuntu Raspbian
$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
$ 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
Arch Linux Manjaro Parabola
$ pacman -Syu caddy
更多安装方式可以参考官方文档,Install — Caddy Documentation
Caddy 入门
这里主要介绍我们今天会使用到的反向代理,别的一些功能大家可以到官方文档查阅。
Command Line
反向代理 2080 端口到 9000 端口
caddy reverse-proxy --from :2080 --to :9000
通过以下命令进行测试
curl -v 127.0.0.1:2080
Caddyfile
这里更加推荐使用 Caddyfile 进行配置,方便许多。我们同样实现上面的功能。
:2080
reverse_proxy :9000
通过下面的命令启动
caddy run
通过以下命令进行测试
curl -v 127.0.0.1:2080
如果是使用域名,将第一行更换为域名即可,并且会自动申请证书,开启 HTTPS。
为 Sentry 配置域名
首先我们需要通过 DNS 将域名指向我们的服务器 IP,接着就可以将配置写到 Caddyfile 中。
sentry.example.com {
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
reverse_proxy localhost:9000
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
现在我们就可以直接通过域名访问 Sentry 的后台管理系统了,如果部署端口不同可以自行进行配置。
总结
这篇文章介绍了如何通过 Caddy 实现 Sentry 通过域名访问,同时也简单介绍了 Caddy 的安装与反向代理的使用方法。在下一篇会介绍 Sentry 的详细实战使用。
这是我的 GitHub 主页 github.com/L2ncE
欢迎大家Follow/Star/Fork三连。