干掉群晖 DSM 内置 Nginx,我的 NAS 我做主!

干掉群晖 DSM 内置 Nginx,我的 NAS 我做主!

💡 原文中文,约10400字,阅读约需25分钟。
📝

内容提要

本文介绍了使用Nginx替代群晖DSM内置的Nginx,提供更多功能和更高效性能的方法。详细介绍了解除端口占用、安装Nginx和acme.sh、签发证书、配置Nginx反代服务等步骤,以满足个性化需求。

🔎

延伸解读

操作风险与前置准备

文章明确警告修改系统配置极度危险,误操作可能导致 NAS 宕机。操作前需确保已备份重要数据,并理解每一步命令的作用。此外,安装 Nginx 和 acme.sh 需要连接 GitHub,若网络受限需自行配置代理或镜像服务,否则容器可能无法正常拉取。

端口调整与系统兼容性

解除内置 Nginx 对 80 和 443 端口的占用是让新 Nginx 接管的关键。文章通过 sed 命令将端口改为 8080 和 8444,并提醒 DSM 6 与 DSM 7 的重启命令不同。为防止系统更新覆盖配置,建议在任务计划中设置开机自动执行修改命令,但需注意此操作仍可能因系统升级而失效。

证书申请与容器网络配置

使用 acme.sh 申请证书时,需根据 DNS 服务商导入相应的 API 密钥,并创建 ZeroSSL 账户。若网络连接不稳定,可为容器配置 HTTP_PROXY。将 Nginx 和 acme.sh 置于同一 Docker 网络(如 nas)后,反代配置可直接使用容器名和端口,无需关心 IP 变化,简化了内网服务间的通信。

反代扩展与公网访问

通过 Nginx 反代,可以轻松将 Emby 等内网服务暴露到 HTTPS。若需公网访问,可在 server 块中增加监听端口(如 8443),并在 Docker Compose 中映射该端口,再通过路由器转发即可。文章还展示了反代同一网络内路由器的示例,体现了配置的灵活性,但需注意公网访问的安全风险。

❓

Q&A

为什么要替代群晖DSM内置的Nginx?

群晖DSM内置的Nginx功能有限,反应迟钝,证书申请效率低下,使用独立的Nginx可以提高性能和功能。

如何解除内置Nginx的端口占用?

使用SSH登录,执行命令将80端口替换为8080,443端口替换为8444,然后重启Nginx。

安装Nginx和acme.sh的推荐方法是什么?

建议使用Docker安装Nginx和acme.sh,并使用非root用户进行安装。

如何申请SSL证书?

需要创建ZeroSSL账户,并配置DNS服务商的密钥,然后使用acme.sh申请证书。

如何配置Nginx强制使用HTTPS?

在Nginx配置文件中,监听80端口并重定向到443端口,同时配置SSL证书。

可以通过Nginx反代哪些服务?

可以通过Nginx反代其他服务,如emby,并支持在同一网络内的容器通信。

🏷️

标签

➡️

继续阅读