IPv6를 비활성화한 상태로 설치가 가능한가요? (스포일러: 불가능할 것 같습니다)

웹 템플릿에서 /proc/net/if_inet6 파일의 존재 여부를 확인하여 [::]:80 리스닝을 끄도록 되어 있는 것을 확인했습니다. 하지만 기본 nginx 파일에는 여전히 해당 설정이 남아 있습니다.

이를 해결하기 위해 다음 내용을 추가해 보았습니다:

  - exec: sed -i '/listen \[::\]:80 default_server;/d' /etc/nginx/sites-available/default
  - exec: sed -i 's/listen 80 default_server;/listen 0.0.0.0:80 default_server ipv6only=off;/' /etc/nginx/sites-available/default
  - exec: sed -i 's/listen 80 default_server;/listen 0.0.0.0:80 default_server ipv6only=off;/' /etc/nginx/conf.d/discourse.conf

하지만 로그에는 여전히 다음과 같은 메시지가 표시됩니다:

2025/09/02 21:34:29 [emerg] 359#359: socket() [::]:80 failed (97: Address family not supported by protocol)
2025/09/02 21:34:34 [notice] 3240#3240: signal process started
2025/09/02 21:34:34 [error] 3240#3240: open() "/run/nginx.pid" failed (2: No such file or directory)

오래전에는 불가능해 보였습니다:

실제로 커널 수준에서 IPv6를 비활성화한 상태로 Discourse를 작동시킨 경험이 있는 사람이 있습니까?

(왜냐하면 누군가 제공한 VM에서 IPv6가 꺼져 있기 때문입니다. 접근 권한을 부여해 줄 VM을 프로비저닝하는 데 몇 달이 걸렸습니다.)

의심스럽네요. 최근 @schleifer의 도움으로 ssl 파일에서도 비슷한 라인을 제거했는데, 아직 웹 템플릿까지는 손을 못 댔을 뿐입니다.

IPv6 지원은 우리 패키지에 상당히 깊이 내장되어 있어, 모든 곳에서 깔끔하게 제거하는 것은 물론이고 그에 대한 검증 및 지원을 제공하는 것도 상당히 어렵습니다.

빠른 확인 감사합니다! 사실 그렇게 생각했고, 뻔한 간단한 해결책을 놓친 게 아니라서 정말 안도했습니다.