我在 Linode 上的 Docker 中建立了一些站点。
我开始遵循以下说明:
使用 Linode 上的 Portainer 将 Docker 容器连接到域名以便轻松访问
我遵循的步骤如下:
- 创建了 Linode
- 在 Docker 容器中安装 NGINX 代理管理器
- 添加我的域名https://cloud.linode.com/domains,将其指向我的 Linode
- 将我的域名的域名服务器重定向到我的域名注册商上的 Linode
- 在 Docker 容器中添加 Portainer
然后我按照以下说明在 Docker 容器中安装了 VaultWarden:
使用 Portainer 上的 Vaultwarden 控制并保护您的密码
这里步骤如下:
- 设置子域名
- 在 Docker 中安装 VaultWarden
- 在 NGINX 中启用 HTTPS
- 在 NGINX 代理管理器中创建了一个指向我的 VaultWarden 容器的代理主机
在此过程中,我通过 NGINX 代理管理器 UI,使用 Let's Encrypt 创建了 SSL 证书。(从第二个视频的 11:00 开始)。
所有这些似乎都起到了大部分作用。
或者,更确切地说,在 NGINX 代理管理器的“添加 Let's Encrypt 证书”中有一个“测试服务器可达性”按钮,并且总是返回“与 API 的通信失败,NPM 是否运行正常?”的错误。
但是,不管怎样,我都能够使用生成的 SSL 密钥配置到 VaultWarden 容器的重定向。
然后能够使用子域访问 VaultWarden,并看到浏览器可以看到有效的证书。
现在,我的问题是,我收到的证书即将过期的电子邮件。
当我返回 NGINX 代理管理器并查看 SSL 证书时,我看到“立即续订”选项,当我尝试该选项时,系统会提示“请等待”一段时间,然后出现“内部错误”消息。
可能相关也可能不相关,“测试服务器可达性”选项仍然返回“与 API 的通信失败,NPM 是否运行正常?”错误。
我的问题是这些漂亮的 GUI 没有返回任何关于发生了什么或者为什么失败的信息。
某处必须有某种类型的日志记录,可以提示我问题出在哪里。
有人能帮我找到它吗?
答案1
我对这个问题做了进一步的研究。我认为这个问题与 NPM 中的两个错误有关。
在版本 v2.9.21 中,SSL 更新问题似乎已得到部分修复。多次尝试更新后,SSL 证书会更新;如果第一次不成功,我会等待大约 15 秒,然后再试一次。确保您运行的是最新版本:v2.9.21。
对于许多人来说,“测试服务器可达性”按钮似乎根本不起作用。您会发现 Github 上有多个问题表明了相同的行为;无论是 SSL 续订还是测试服务器可达性时显示的错误:“与 API 的通信失败,NPM 是否运行正常?”
- https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2439(此内容包含有关测试服务器可达性错误的最多信息)
- https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2713(此链接包含有关 SSL 续订的最多信息)
- https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2593
- https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2442
在进一步检查我的日志后,我还注意到了以下几点错误:
无法构建最佳的 proxy_headers_hash,您应该增加 proxy_headers_hash_max_size:512 或 proxy_headers_hash_bucket_size:64;忽略 proxy_headers_hash_bucket_size
我发现在以下两行中添加以下两行可以改善〜/ npm /数据/ nginx /自定义/ http.conf
proxy_headers_hash_max_size 1024;
proxy_headers_hash_bucket_size 128;