질문/조언질답게시판

라이믹스 클라이언트 ip 를 가져올때 클라우드플레어가 사용되는 사이트에서도 실제 단말의 ip를 가져오는데요.

 

\RX_CLIENT_IP 로 가져오는 경우만 해당되는건지 

아니면 

 

$_SERVER['REMOTE_ADDR']

 

로 직접 가져오는 경우까지 해당 되는건지 궁금하네요.

 

자료중에 $_SERVER['REMOTE_ADDR'] 를 사용해서 코드를 짠 경우는 클라우드플레어 ip가 잡히게 되는건가요?

 - 외부페이지에서 테스트 해보니 실제 ip가 잡히네요.

  • profile

    https://github.com/rhymix/rhymix/blob/a97f6d6a05d139347f621e0e02a1e4860de2ad35/common/framework/filters/ipfilter.php#L148

    클라우드플레어 접속인 경우 $_SERVER['REMOTE_ADDR']만 변경합니다.

    https://github.com/rhymix/rhymix/blob/a97f6d6a05d139347f621e0e02a1e4860de2ad35/common/constants.php#L51-L78

    참고로 \RX_CLIENT_IP 선언 시점이 클라우드플레어 관련 처리를 한 뒤 시점이라 별도 변경이 필요없습니다.

  • profile profile
    기존 자료나 외부페이지에서 사용한 $_SERVER['REMOTE_ADDR'] 는 그대로 두어도 되고
    외부페이지 중에 라이믹스 함수 사용을 하지 않았던 곳에 라이믹스 함수 사용이 되도록 윗줄에 코드 추가는 필요한 상황이네요.

    만약 모두 클라우드플레어가 아닌 실제 ip를 확인하고 싶다면요.
  • profile profile

    만약 서버 세팅시 /etc/nginx/conf.d 폴더에 클라우드플레어 IP 관련 설정파일을 넣어드렸다면 PHP나 라이믹스에서 아무 것도 하지 않아도 nginx단에서 변환됩니다. PHP에서 헤더를 주물럭거리는 것보다 더 깔끔한 방법이죠.

  • profile profile
    네. 해당 설정은 없는거 같네요. 서버에서 처리 못한 경우 라이믹스에 숟가락 하나 얹어보려구요.
  • profile profile
    글 과 조금 다른 질문 하나만 여쭙겠습니다.

    저희 처럼 서브도메인으로 캐시서버쪽으로 연결한 경우,
    캐시서버 도메인을 제외한 나머지 메인도메인을 클라우드 플레어와 연결할 경우 캐시서버에서 접속을 못하거나 하는 상황이 일어날 수 있나요? 예를 들면 디도스 공격 활성화를 통해 확인단계를 한번 거치게 했을 경우...

    디도스공격으로 클라이언트 확인을 켜 놓은 사이트의 경우는 자동첨부 애드온에서 이미지를 못가져오더라구요.
  • profile profile
    캐시서버와 메인서버 사이에 도메인이 아닌 IP로 연동했다면 클플과 관계없이 정상 작동할 것입니다. 제가 기억하는 곳은 모두 IP로 연동했습니다.
  • profile profile
    네. ip로 연동했을 겁니다. 그럼 상관이 없겠군요. 감사합니다.