之前只有一台上海的服务器所以问题没这么多。现在加了两台美国的服务器,所以是时候优化一下服务器的网络架构了。
每个服务器都有各自的优缺点:上海的服务器配置高延迟低但是没备案,美国的一台配置中等但是网络链接特别慢,另一台配置不怎么好但联通性很理想。之前服务器都是分离开的,我打算把他们互相连起来。
我现在有的服务:Bitwarden(上海)、Uptime Kuma(美国B)、Wordpress(美国 A)、Jenkins(美国 A)、游戏服务器(自家)、Mumble(上海)、fsfans.club(美国 A)。我打算在美国 B 服务器上架设反向代理顺便充当防火墙。同时其它两台服务器会装 OpenBSD 反向代理用 Debian,这样可以用 Valutwarden。
在反向代理服务器上我打算试试 Caddy V2,安装很简单:
$ 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
然后发现 Caddy 使用起来*非常简单*,打开一个带虚拟主机的反向代理只需要:
ci.hackflow.org {
reverse_proxy localhost:8080
}
看上去很简洁对吧?那让我们设置 HTTPS。。。好吧,不需要设置,Caddy 会自动从 Let’s Encrypt 获取证书。很贴心的功能。
搞定了 Jenkins 的反向代理,开始设置 WordPress 的代理。在 OpenBSD httpd 上把域名换成一个别人不知道的,然后修改 Caddyfile:
hackflow.org {
reverse_proxy https://icanttellyouthis.hackflow.org {
transport http {
tls_insecure_skip_verify
}
}
}
重载后,Wordpress 工作正常。反向代理先到这里,我还想把 Vaultwarden 迁到代理服务器上。Vaultwarden 的部署会使用 docker:
# docker run -d --name vaultwarden -v /vw-data/:/data/ -p 8000:80 vaultwarden/server:latest
把之前打包的 Vaultwarden 数据解压到 /vw-data 然后重启 docker 容器。Caddyfile 里面再加三行就搞定了。然后三下五除二,Uptime Kuma 也迁移完了。Done.