2017-05-17 7 views
0

CloudFront-> Origin-> Varnish-> Apache로 구성된 웹 스택이 있으며 IP 주소가 수정되는 방식에 문제가 있습니다. Google 요구 사항 중 하나는 사용자 지역을 기반으로 일부 작업을 수행하는 것입니다. 이를 위해 GeoIP 플러그인을 사용해 큰 일을하고있는 바니쉬 (https://github.com/varnish/libvmod-geoip)를 사용하고 있습니다.IP 주소가 CloudFront와 충돌합니다.

CloudFront가 혼합 된 상태에서 클라우드 프런트 IP 주소를 가정 할 때 X-Forwarded-For 헤더가 추가되는 것을 볼 수 있습니다. 이로 인해 IP 조회가 실패하게됩니다. CloudFront가 해당 헤더를 추가하지 못하도록하거나 VCL에서 IP 주소를 쉼표로 분리하여 반복하는 방법이 있습니까? 적어도 일부 폴백 논리를 사용하여 조회 성공을 처리 할 수 ​​있습니다. 지금 전화하고 있습니다.

if (req.http.x-forwarded-for) { 
    set req.http.X-Country-Code = geoip.country_code(req.http.X-Forwarded-For); 
} 

고마워요!

답변

0

CloudFront가 우리를 대신하여이 작업을 수행한다고 밝힙니다. 배포 동작을 구성하려면 CloudFront-Viewer-Country에 대한 허용 목록 헤더를 추가해야합니다. 그러면 요청에 2 문자 국가 코드가 전달됩니다.