我在内部网络中设置了一个测试服务器(无法从外部访问,因此无法设置 Let’s Encrypt),并且发现当服务器具有 IPv6 地址时,Nginx 不会监听 IPv6。容器内的 /etc/nginx/conf.d/discourse.conf 显示 listen 80; 但没有 listen [::]:80;。
我还有另一台生产服务器,可以正常通过 IPv6 访问。并且我在元(meta)上搜索过,想找出我的测试服务器配置有什么问题。最后,我发现只有当我将 web.letsencrypt.ssl.template.yml 和 web.ssl.template.yml 添加到我的 app.yml 中时,我才能正常使用 IPv6。原因是这些文件在 Nginx 配置文件中添加了 listen [::]:80; 和 listen [::]:443 ssl http2;。
团队可以在非 HTTPS 安装中添加 IPv6 支持,即在 web.template.yml 中添加 listen [::]:80;。