Nginx não escuta em IPv6 se não usar HTTPS

Configurei um servidor de teste em uma rede interna (não pode ser alcançado de fora, então não posso configurar o let’s encrypt) e descobri que o nginx não escuta em IPv6 quando o servidor tem um endereço IPv6. O /etc/nginx/conf.d/discourse.conf dentro do contêiner mostra listen 80; mas nenhum listen [::]:80;.

Tenho outro servidor de produção que pode ser alcançado em IPv6 normalmente. E pesquisei no meta para encontrar o que há de errado com a configuração do meu servidor de teste. Finalmente, descobri que somente se eu adicionar web.letsencrypt.ssl.template.yml e web.ssl.template.yml ao meu app.yml posso usar IPv6 normalmente. A razão é que esses arquivos adicionam listen [::]:80; e listen [::]:443 ssl http2; no arquivo de configuração do nginx.

A equipe pode adicionar suporte a IPv6 à instalação não HTTPS, ou seja, adicionar listen [::]:80; a web.template.yml.

O Discourse, em sua maioria, não funciona sem HTTPS. Eles podem não adicionar o recurso que você solicita. Mas você pode olhar o template SSL para ver o que é incluído para ativar o IPv6 e adicionar esse código ao seu próprio template ou ao app.yml.

1 curtida

Sim, tentei adicionar ao app.yml assim e funciona.

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

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