Nginx non ascolta su IPv6 se non usa HTTPS

Ho configurato un server di test in una rete interna (non raggiungibile dall’esterno, quindi non è possibile configurare Let’s Encrypt) e ho scoperto che nginx non è in ascolto su IPv6 quando il server ha un indirizzo IPv6. Il file /etc/nginx/conf.d/discourse.conf all’interno del container mostra listen 80; ma non listen [::]:80;.

Ho un altro server di produzione che può essere raggiunto normalmente su IPv6. E ho cercato su meta per trovare cosa c’è di sbagliato nella configurazione del mio server di test. Infine, ho scoperto che solo se aggiungo web.letsencrypt.ssl.template.yml e web.ssl.template.yml al mio app.yml posso usare IPv6 normalmente. Il motivo è che questi file aggiungono listen [::]:80; e listen [::]:443 ssl http2; nel file di configurazione nginx.

Il team può aggiungere il supporto IPv6 all’installazione non HTTPS, ovvero aggiungere listen [::]:80; a web.template.yml.

Discourse non funziona quasi mai senza https. Potrebbero non aggiungere la funzionalità che richiedi. Tuttavia, puoi consultare il template SSL per vedere cosa viene incluso per abilitare l’IPv6 e aggiungere quel codice al tuo template o all’app.yml.

1 Mi Piace

Sì, ho provato ad aggiungere a app.yml in questo modo e funziona.

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

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