前言

在上一篇文章中我们通过 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三连。

参考

caddyserver.com