群晖NAS公网访问配置(三):配置Nginx访问Docker服务
当我们配置玩 DDNS 和 WireGuard 之后,我们已经可以安全的访问我们 NAS 上的文件以及各种服务了。
但是如果你觉得通过端口访问 Docker 中各个服务太繁琐,或者 Docker 服务太多,要记的端口太多。那么我们可以通过配置 Nginx 的方式,来给各个 Docker 服务绑定一个域名。
本文为《群晖NAS公网访问配置》系列文章的第三篇。全部文章请参考:
群晖NAS公网访问配置(一):配置DDNS
群晖NAS公网访问配置(二):配置WireGurad
群晖NAS公网访问配置(三):配置Nginx访问Docker服务
群晖NAS公网访问配置(四):配置云服务器
在云平台添加记录值
前面几篇文章中,我们在腾讯云上设置过多条主机记录,这里我们需要再添加一条作为我们 Docker 服务的入口域名。
同样是在腾讯云 我的域名 页面,点击已注册域名,进入“记录管理”页面。
单击添加记录,根据你服务的需求添加一条主机记录,比如我们为 calibre-web 添加域名,那么主机记录可以写 calibre
。
记录值和你 NAS 的内网 IP 相同。比如我们在上一篇文章中设置的 192.168.47.29
。
配置 NAS 的 Nginx
DSM 本身自带 Nginx,所以我们可以通过修改自带 Nginx 的方式来为 Docker 服务增加配置。
DSM 的 Nginx 每次启动时会根据模板文件重新创建,不过这里我们不修改文件本身,所以无碍。
通过 ps aux|grep nginx
命令我们可以看到 DSM 加载的是 /etc/nginx/nginx.conf.run
,在该文件末尾有一行 include sites-enabled/*
。这代表着我们可以将新增的配置放到 /etc/nginx/sites-enabled
文件夹下。
进入 sites-enabled
文件夹,然后通过 vim 新建一个配置文件:
cd /etc/nginx/sites-enabled
vim calibre.baidu.com.conf # 可使用你要配置的服务的域名作为文件名
在文件内填入下面的内容:
server {
listen 80;
server_name calibre.baidu.com; # 服务的域名,根据实际情况替换
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_redirect off;
proxy_pass http://172.17.0.1:8083; # 填写群晖容器详情中设置的网关/IP地址+配置的端口
# 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
client_max_body_size 2000m;
}
}
保存后,使用下面的命令告诉 Nginx 使用指定的配置文件启动,然后重载 Nginx 的配置文件。
/usr/bin/nginx -c /etc/nginx/nginx.conf.run -t
/usr/bin/nginx -c /etc/nginx/nginx.conf.run -s reload
现在您应该已经可以使用 calibre.baidu.com
代替 sana.baidu.com:8083
来访问您的 calibre-web
服务了。