KeiStory

쿠버네티스 환경의 Blazor 애플리케이션에서 Client 실제 IP 남기는 방법

 

쿠버네티스 환경에서 Client IP 를 확인해 보면 Pod 의 IP 가 남게됩니다.

이는 로드 밸런서 뒤에서 Balzor 애플리케이션이 동작하고 있기때문입니다.

이를 Client의 실제  IP 를 남겨 주기 위해서는 아래 코드를 추가해주면 됩니다.

// 사용자 IP 처리
ForwardedHeadersOptions forwardedOptions = new()
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
};

forwardedOptions.KnownNetworks.Clear();
forwardedOptions.KnownProxies.Clear();
app.UseForwardedHeaders(forwardedOptions);

위 코드는 프록시 서버나 로드 밸런서 뒤에 있을 때 클라이언트의 실제 IP 주소를 올바르게 처리하기 위한 설정입니다.

 

 

ForwardedHeaders 의 X-Forwarded-For는 클라이언트의 원래 IP 주소를 포함합니다.

X-Forwarded-Proto는 클라이언트가 사용한 원래 프로토콜(HTTP 또는 HTTPS)을 나타냅니다.

 

forwardedOptions.KnownNetworks.Clear();
forwardedOptions.KnownProxies.Clear();

위 코드는 기본적으로 신뢰할 수 있는 것으로 간주되는 네트워크와 프록시 목록을 지웁니다.

 

app.UseForwardedHeaders(forwardedOptions);

위 코드는 앞서 구성한 옵션을 사용하여 ForwardedHeaders 미들웨어를 애플리케이션 파이프라인에 추가합니다.

X-Forwarded-For 및 X-Forwarded-Proto 헤더를 처리하여 요청의 원래 클라이언트 IP 주소와 프로토콜을 올바르게 표시합니다.

앞에서도 설명했지만 이 설정은 특히 프록시 서버나 로드 밸런서를 사용하는 프로덕션 환경에서 클라이언트의 실제 정보를 정확히 파악하고 처리할수 있게합니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band