Nginx lauscht nicht auf IPv6, wenn kein HTTPS verwendet wird

Ich habe einen Testserver in einem internen Netzwerk eingerichtet (kann nicht von außen erreicht werden, daher kann kein Let’s Encrypt eingerichtet werden) und festgestellt, dass Nginx nicht auf IPv6 lauscht, wenn der Server eine IPv6-Adresse hat. Die Datei /etc/nginx/conf.d/discourse.conf im Container zeigt listen 80;, aber kein listen [::]:80;.

Ich habe einen anderen Produktionsserver, der normal über IPv6 erreichbar ist. Und ich habe im Meta-Forum gesucht, um herauszufinden, was mit meiner Testserverkonfiguration falsch ist. Schließlich habe ich festgestellt, dass ich IPv6 nur dann normal nutzen kann, wenn ich web.letsencrypt.ssl.template.yml und web.ssl.template.yml zu meiner app.yml hinzufüge. Der Grund dafür ist, dass diese Dateien listen [::]:80; und listen [::]:443 ssl http2; in die Nginx-Konfigurationsdatei einfügen.

Das Team kann IPv6-Unterstützung für Nicht-HTTPS-Installationen hinzufügen, d. h. listen [::]:80; zu web.template.yml hinzufügen.

Discourse funktioniert größtenteils nicht ohne HTTPS. Möglicherweise fügen sie die von Ihnen angeforderte Funktion nicht hinzu. Aber Sie können sich die SSL-Vorlage ansehen, um zu sehen, was zur Aktivierung von IPv6 enthalten ist, und diesen Code zu Ihrer eigenen Vorlage oder zu app.yml hinzufügen.

1 „Gefällt mir“

Ja, ich habe versucht, es wie folgt zu app.yml hinzuzufügen, und es funktioniert.

hooks:
  after_web_config:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /listen.+$/
        to: |
          listen 80;
          listen [::]:80;
2 „Gefällt mir“

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