基于群晖NAS部署Web服务
引言
之前群晖主要用作NAS,服务部署在另外的服务器上。后来由于域名解析受到限制,所以就基于群晖来部署和管理Web服务。在这里,简单记录以下使用群晖部署和管理Web服务的流程。
基本用法
群晖主要有两个作用:
- 使用群晖的Docker套件直接部署和运行服务;
- 使用群晖的反向代理作为服务的入口。
分别简单介绍一下。
群晖Docker套件使用
镜像与仓库
群晖Docker套件将镜像仓库(registry)翻译成了“注册表”,将镜像(image)翻译成了”图像“。😂
仓库有两类:
- 套件已经预置的仓库
- 自己手动添加的
镜像有两种来源:
- 从仓库搜索直接下载;
- 通过URL下载或者NAS上传;
容器配置
有了镜像,就可以启动容器,与Docker桌面版相比,Docker套件的配置更加简单,需要关注的主要有以下部分。
网络
Docker套件提供的网络类型有两种类型,包括bridge和host两种类型,具体含义和使用场景可以参考Docker网络模式的定义。
可以自定义容器网络:
挂载卷
数据挂载可以直接选择群晖的文件或者文件夹。
其他
其他的端口设置、环境变量、启动命令照着界面引导设置即可。
群晖暴露Web服务
使用群晖暴露Web服务有两种思路:
- 开防火墙,直接暴露服务的端口;
- 使用群晖作为反向代理。
考虑到通用型和便利性,我选择使用群晖作为反向代理的方式。
证书设置
使用syno-acme更新证书
参考网上的教程:
- https://github.com/andyzhshg/syno-acme/issues/77#issuecomment-984407513
- https://github.com/moteta/syno-acme
使用群晖的“任务计划”定时执行脚本,每月更新一次泛域名的证书。
为反向代理的服务提供证书
反向代理设置
由于前面已经设置了证书,所以来源一律为HTTPS,目的地根据实际情况填写内网服务的地址。
在防火墙的设置上,禁止外部网络直接访问除反向代理以外的其他端口。
结论
以上就是利用群晖的Docker套件部署服务,并且利用群晖的反向代理功能对外提供HTTPS服务。