2010-03-11 1 views
5

원격 서버의 Rails 2.2 앱을 방문하면 다음 값이 내 REMOTE_ADDR로 수신됩니다.request.env [ 'REMOTE_ADDR']이 (가) 두 개의 IP를 반환하는 이유는 무엇입니까?

request.env [ 'REMOTE_ADDR'] : 두 개의 IP를 거기에 왜 내가 난처한 상황에 빠진 것을 "75.184.124.93, 10.194.95.79"

이다. 현재 임대중인 공용 IP를 빠르게 확인하면 내 IP가 75.184.124.93임을 확인할 수 있습니다.

10.194.95.79는 어디에서 오는가?

내가 상실한 HTTP 헤더 사양에서 원격 주소를 수집하고보고하는 방법에 대한 정보가 있습니까? 이것은 예상되는 정상적인 행동입니까?

+0

10.194.95.79는 개인 네트워크 IP 주소입니다. –

+0

request.env [ 'REMOTE_ADDR']에서 75.184.124.93에 추가되는 이유는 무엇입니까? –

+0

HTTP 요청 헤더가 응용 프로그램 계층 앞에있는 역방향 프록시에 의해 수정 되었기 때문일 수 있습니까? –

답변

5

확실히 역방향 프록시 때문입니다.

역방향 프록시 (일반적으로 BigIP 및 Apache mod_proxy 모드를 사용함)는 일반적으로 모든 중간에있는 IP를 목록에 추가하므로 코드에서 올바른 IP를 선택할 수 있습니다.

예를 들어 공공 장소를 webstats 응용 프로그램에 기록하면 REMOTE_ADDR에 바로 표시됩니다. 하지만 내부 IP를 가지고 있기 때문에 어떤로드 밸런서가 왔는지, 어떤 내부 서버가 내부 네트워크 추적인지 등을 알 수 있습니다.

관련 문제