웹 템플릿에서 /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을 프로비저닝하는 데 몇 달이 걸렸습니다.)