【podman实践】在ZZ.AC上建立多个服务记录
我在群里请教涛叔,怎么在zz.ac这个公益主机部署多个服务?他回答:
理论上大家可以把多个子域名解析到 vps 上,都会转发到各自的 8080 端口。大家再根据 host 分流
一时没有想明白怎么处理,直到今天晚上得到NaN 🍃点拨:
你把别的服务的子域名解析到vps上 反代监听8080端口 在根据这个服务的子域名分流 反代到这个服务的端口上就行了
其实我之所以一直没有这么处理,是因为我自己在给了自己一个错误的暗示:
这个公益主机是特殊的主机,系统给我分配了一个固定的域名。没有公网IP, 没有办法再设置子域名。
忽然想起在申请vps的时候设置cname的时候有说明:
你得给 lab.example.zz.ac 同时添加 IPv4 和 IPv6 记录,指向 h1.lab.zz.ac 这台主机。
最简单的办法是使用 CNAME 记录:
1
| lab 5m CNAME h1.lab.zz.ac.
|
当然也可以自行指定 A/AAAA 记录:
1 2
| lab 5m A 146.235.195.242 lab 5m AAAA 2603:c024:c00c:9800:911a:29ef:738b:c2a6
|
也就是说可以设置别的子域名指向下面CANME或者IP,就可以了
1 2 3
| CNAME h1.lab.zz.ac. A 146.235.195.242 AAAA 2603:c024:c00c:9800:911a:29ef:738b:c2a6
|
瞬间这个困惑就解决掉了。这和我在别的VPS上 设置多个域名,用caddy反代多个服务一样啊!
😄
😄
😄
😄
😄
😄
😄
😄
😄
于是马上实践:
- 我的博客静态文件用blog.bosh.zz.ac访问
- alist服务用file.bosh.zz.ac访问
建立caddy 服务:在根目录下建立Cddyfile文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 1. 博客静态站 (静态文件) http: # 必须是容器内路径 root * /usr/share/caddy # 开启静态文件服务 file_server # 开启日志方便调试 log { output stdout } }
# 2. 应用服务 (反向代理) # ---------------------------- http: reverse_proxy 127.0.0.1:5244 }
|
用podman安装caddy
1
| podman run -d --name my-caddy --network host --restart always -v /home/bosh/Caddyfile:/etc/caddy/Caddyfile -v /home/bosh/blog/public_html:/usr/share/caddy docker.io/caddy:alpine
|
用podman安装alist
1
| podman run -d --restart=unless-stopped -v /home/bosh/alist:/opt/alist/data -p 5244:5244 --network slirp4netns -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" docker.io/alist666/alist:latest
|
安装完毕,在浏览器打开网址验证:
- 我的博客:blog.bosh.zz.ac,访问正常
- alist服务:file.bosh.zz.ac,访问正常
设置caddy 和alist 为用户系统服务,后台运行,系统重启自动运行:
1 2 3 4 5 6 7 8 9
| mkdir -p ~/.config/systemd/user/ cd ~/.config/systemd/user/
podman generate systemd --name my-caddy --new --files --name podman generate systemd --name alist --new --files --name systemctl --user enable --now container-my-caddy.service systemctl --user enable --now container-alist.service
|
至此大功告成

😸
💃
😪