본문 바로가기

소프트웨어-이야기/인프라

IPv6와 Nginx

Ipv4

ipv4 프로토콜은 우리가 익히 알고있는 32bit의 IP 주소 체계로 되어있다. 그러다보니 사용할 수 있는 IP 수가 43억개로 제한되어있다. 

223.130.195.95

 

Ipv6

Ipv6 프로토콜은 Ipv4 인터넷 주소가 고갈되는 문제를 해결하기 위해 만들어졌다. Ipv6은 128비트로 되어있고, IPv4 주소공간에 비해 296배의 크기를 갖는다. 

2001:0db8:85a3:08d3:1319:8a2e:0370:7334

요상하게 생겼는데, 이게 주소다. 

 

nginx에서 Ipv6 활성화하기 

nginx.conf 파일에서 listen 80;  하위에 다음과 같이 선언해주면, nginx에서 ipv6 주소 요청을 수신할 수 있다.

listen [::]:80;

 

이 설정은 서버에서 ipv6을 활성화한 상태에서만 사용할 수 있다. 서버에서 ipv6이 비활성화되어있다면 nginx를 올릴 때 다음과 같은 오류가 발생하게 된다.

nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

 

참고

https://lightsail.aws.amazon.com/ls/docs/ko_kr/articles/amazon-lightsail-configure-ipv6-on-nginx

https://www.fun25.co.kr/blog/nginx-ipv6-address-family-not-supported-by-protocol/?category=001