我已使用我的域 iguana-centauri 使用 TrueNAS Scale 24.10.2 和 Tailscale 配置了我的服务器“Ada”。
我可以通过完美访问它ada.iguana-centauri.ts.net
。
我将 TrueNAS Web 管理员的 HTTP 端口从 80 移到了 8090(并将 NPM 的 HTTP 端口从 30021 移到了 80),现在我可以轻松地通过 访问 TrueNAS Web 管理员ada.iguana-centauri.ts.net:8090
,通过 访问 NPM 管理员ada.iguana-centauri.ts.net:30020
,并通过 访问 NPM“祝贺”页面ada.iguana-centauri.ts.net
。完美。
然后,我在 NPM 中配置了一个代理主机,其域名为ada.iguana-centauri.ts.net
,HTTP 模式为 ,转发主机名/IP 指向192.168.68.68
(TrueNAS 内网 IP),端口为 8090,并启用了 WebSockets 支持和阻止常见漏洞。这样就可以完美地访问 TrueNAS webadmin 了。(Nginx 仍然可以通过 :30020 访问。)
然后,一切都乱套了。
当我尝试配置自定义位置以通过访问 NPM 本身时ada.iguana-centauri.ts.net/nginx
,一切都停止工作:
ada.iguana-centauri.ts.net
开始返回 NPM“祝贺”页面,就像直接通过 IP 访问一样。ada.iguana-centauri.ts.net/nginx
返回一个空白页,该页面似乎包含一些 NPM 管理器界面的 MHTML,但没有任何内容可以正确加载,并且浏览器抱怨text/html
外部资源的 MIME 类型()不匹配(X-Content-Type-Options:nosniff),显然错误地重写了它们的 URL。
我尝试了各种方法,例如下面的自定义规则脚本,但一切都变得更糟,导致 404 或 502 错误:
rewrite ^/nginx(/.*)?$ $1 break;
proxy_http_version 1.1;
proxy_set_header Host localhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Prefix /nginx;
/nginx
最终,我的目标是通过子路径( 、等)访问服务/nextcloud
,但现在我陷入了困境。
帮助!
NPM 上的自定义位置功能已损坏。它确实替换了初始 URL,但无法在内部正确重写,因此网站/服务无法加载 css、js、图片等。
我寻找自定义位置的原因是,截至今天,Tailscale 不允许单台机器的 MagicDNS 域中存在子域。
解决我问题的方法是自己获取一个域名,并为我的 TrueNAS 中的每个服务分配子域名。我按照 Thomas Wilde 的精彩教程操作:
https://www.youtube.com/watch?v=Y7Z-RnM77tA
作为奖励,我几乎无缝地获得了 SSL 证书。