如果未使用 HTTPS,Nginx 将不监听 IPv6

我在内部网络中设置了一个测试服务器(无法从外部访问,因此无法设置 Let’s Encrypt),并且发现当服务器具有 IPv6 地址时,Nginx 不会监听 IPv6。容器内的 /etc/nginx/conf.d/discourse.conf 显示 listen 80; 但没有 listen [::]:80;

我还有另一台生产服务器,可以正常通过 IPv6 访问。并且我在元(meta)上搜索过,想找出我的测试服务器配置有什么问题。最后,我发现只有当我将 web.letsencrypt.ssl.template.ymlweb.ssl.template.yml 添加到我的 app.yml 中时,我才能正常使用 IPv6。原因是这些文件在 Nginx 配置文件中添加了 listen [::]:80;listen [::]:443 ssl http2;

团队可以在非 HTTPS 安装中添加 IPv6 支持,即在 web.template.yml 中添加 listen [::]:80;

Discourse 大部分情况下无法在没有 HTTPS 的情况下运行。他们可能不会添加您请求的功能。但您可以查看 SSL 模板,了解启用 IPv6 所包含的内容,并将该代码添加到您自己的模板或 app.yml 中。

1 个赞

是的,我尝试像这样添加到 app.yml 中,并且它奏效了。

hooks:
  after_web_config:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /listen.+$/
        to: |
          listen 80;
          listen [::]:80;
2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.