基于群晖NAS部署Web服务

引言

之前群晖主要用作NAS,服务部署在另外的服务器上。后来由于域名解析受到限制,所以就基于群晖来部署和管理Web服务。在这里,简单记录以下使用群晖部署和管理Web服务的流程。

基本用法

群晖主要有两个作用:

  1. 使用群晖的Docker套件直接部署和运行服务;
  2. 使用群晖的反向代理作为服务的入口。

分别简单介绍一下。

群晖Docker套件使用

镜像与仓库

群晖Docker套件将镜像仓库(registry)翻译成了“注册表”,将镜像(image)翻译成了”图像“。😂

仓库有两类:

  1. 套件已经预置的仓库
  2. 自己手动添加的

image-20221218135225531

镜像有两种来源:

  1. 从仓库搜索直接下载;
  2. 通过URL下载或者NAS上传;

image-20221218135522909

容器配置

有了镜像,就可以启动容器,与Docker桌面版相比,Docker套件的配置更加简单,需要关注的主要有以下部分。

网络

Docker套件提供的网络类型有两种类型,包括bridge和host两种类型,具体含义和使用场景可以参考Docker网络模式的定义。

image-20221218142823793

Docker的四种网络模式

可以自定义容器网络:

image-20221218230207479

挂载卷

数据挂载可以直接选择群晖的文件或者文件夹。

image-20221218154953023

其他

其他的端口设置环境变量启动命令照着界面引导设置即可。

群晖暴露Web服务

使用群晖暴露Web服务有两种思路:

  • 开防火墙,直接暴露服务的端口;
  • 使用群晖作为反向代理。

考虑到通用型和便利性,我选择使用群晖作为反向代理的方式。

证书设置

使用syno-acme更新证书

参考网上的教程:

使用群晖的“任务计划”定时执行脚本,每月更新一次泛域名的证书。

image-20221218225117655

为反向代理的服务提供证书

image-20221218224649093

反向代理设置

image-20221218162014664

由于前面已经设置了证书,所以来源一律为HTTPS,目的地根据实际情况填写内网服务的地址。

在防火墙的设置上,禁止外部网络直接访问除反向代理以外的其他端口。

结论

以上就是利用群晖的Docker套件部署服务,并且利用群晖的反向代理功能对外提供HTTPS服务。