NGINX에서의 REMOTE_ADDR 오류 이슈

NGINX에서 캐시서버를 타면 동일 IP를 두개를 연결지어 가져오는 오류로 이로 인해 IP를 제대로 인식하지 못한다.

NGINX 서버에서의 가져온 IP 값

111.111.111.111, 111.111.111.111

정상적으로 가져온 IP 값
111.111.111.111

 

위와 같은 케이스가 생길 수 있기에

반드시 getRemoteAddress 메소드에서 아래와 같이 처리를 같이 해줘야 한다.

$ipAddressCheck = explode(",", $ipAddress);
if(count($ipAddressCheck) > 1) {
    if(preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', current(trim($ipAddressCheck))) == true) {
        $ipAddress = current(trim($ipAddressCheck));
    }
}

return $ipAddress;