해시 스티어링
해시 스티어링 (Hash)
이 문서는 엔드포인트 가중치와 해당 IP 주소의 이전 요청의 조합을 기반으로 요청을 엔드포인트로 보내는 해시 스티어링(Hash steering) 방식을 안내해요. 또한 Workers 사용 시의 제한 사항과 해결 방법도 다뤄요.
출처: 문서
본문
해시 스티어링(Hash steering) 은 엔드포인트 가중치와 해당 IP 주소의 이전 요청의 조합을 기반으로 요청을 엔드포인트로 보내도록 Cloudflare를 안내해요. 동일한 IP 주소의 요청이 동일한 엔드포인트에 도달하도록 보장하지만, 실제 트래픽 분산은 엔드포인트 가중치와 다를 수 있어요.
Workers 사용 시의 제한 사항
해시 스티어링은 요청의 원래 IP 주소를 결정하기 위해 x-forwarded-for 헤더에 의존해요. 그러나 로드 밸런서 앞에 Cloudflare Worker를 사용하면 이는 해시 스티어링의 동작 방식에 영향을 줄 수 있어요.
요청이 브라우저에서 시작되면 x-forwarded-for 헤더가 없지만, Worker가 로드 밸런서로 요청을 프록시하면 헤더에 원래 클라이언트 IP 대신 Worker의 IP가 채워져요. Worker의 IP는 종종 Cloudflare 공용 IP이며 요청마다 바뀔 수 있으므로, 해시 스티어링이 동일한 클라이언트의 요청을 서로 다른 엔드포인트로 보내 일관되지 않은 트래픽 라우팅을 초래할 수 있어요.
해결 방법
로드 밸런서 앞에 Worker를 사용할 때 해시 스티어링이 올바르게 작동하도록 하려면, Worker에서 x-forwarded-for 헤더를 클라이언트의 원래 IP 주소로 수동 설정하세요. x-forwarded-for를 CF-Connecting-IP로 수동 설정하면 해시 스티어링이 예상대로 작동하여 최종 사용자에게 트래픽 일관성을 보장해요.
더 알아보기 (Learn more)
엔드포인트 수준 스티어링과 가중치의 개념에 대해 더 알아보려면 오리진 수준 스티어링 문서를 참고하세요.