내부 네트워크(외부에서 접근할 수 없으므로 Let’s Encrypt를 설정할 수 없음)에 테스트 서버를 구성했는데, 서버에 IPv6 주소가 있음에도 nginx가 IPv6를 듣지 않는 문제를 발견했습니다. 컨테이너 내부의 /etc/nginx/conf.d/discourse.conf 파일에는 listen 80;은 있지만 listen [::]:80;은 없습니다.
IPv6로 정상적으로 접근할 수 있는 다른 프로덕션 서버가 하나 더 있습니다. 그리고 메타(Meta)를 검색하여 테스트 서버 구성에서 무엇이 잘못되었는지 찾아보았습니다. 결국 app.yml에 web.letsencrypt.ssl.template.yml과 web.ssl.template.yml을 추가해야만 IPv6를 정상적으로 사용할 수 있다는 사실을 발견했습니다. 그 이유는 이 파일들이 nginx 설정 파일에 listen [::]:80;과 listen [::]:443 ssl http2;를 추가하기 때문입니다.
팀에서는 HTTPS가 아닌 설치 환경에도 IPv6 지원을 추가할 수 있습니다. 즉, web.template.yml에 listen [::]:80;을 추가하는 것입니다.