CloudFlare 사용자: 일반 IP 대신 HTTP 헤더의 CF-* 필드를 사용하는 방법?

CloudFlare가 방문자의 IP 주소를 마스킹하므로, CloudFlare가 삽입하는 HTTP 헤더에서 CF-Connecting-IP, X-Forwarded-For, CF-IPCountry와 같은 CloudFlare 고유 필드를 추가로 수집할 수 있으면 유용할 것입니다. 또한 Admin > Users > username 페이지에서 이러한 필드를 조건부로 보고할 수 있으면 좋겠습니다. (CloudFlare 사용 시 유용하지 않은) 기존 IP 필드 및 IP 조회 버튼과 함께 표시되도록 말이죠.

CF-* 헤더 필드가 사용 가능한 경우, 해당 페이지에서 이 필드들을 제공해 주실 수 있을까요?

유용할 수 있는 한 가지 옵션(다른 Rails 앱에서 사용해 본 적 있음)은, 해당 필드가 사용 가능한 경우 IP 주소 대신 그 필드를 사용하는 것입니다. 제가 그 기능을 구현한 지 꽤 오래되었지만, 기억이 맞다면 CF-Connecting-IP가 존재하지 않는 한 방문자의 IP를 IP로 설정하는 것으로 충분했을 것입니다… 하지만 X-Forwarded-For에 대해 다른 작업도 수행했던 것 같습니다…

제공된 Cloudflare 템플릿을 사용하시면 이 모든 작업이 자동으로 처리됩니다. 사실 이 기능은 Discourse에서 4~5년 전부터 사용 가능했습니다.

표준 설치 과정을 따랐다고 가정하면:

cd /var/discourse
nano containers/app.yml

다음과 같은 라인을 templates 아래에 추가하세요:

- "templates/cloudflare.template.yml"

그 후 재빌드만 실행하면 됩니다:

./launcher rebuild app

이제 설치 환경에서 실제 사용자 IP 주소가 표시될 것입니다.

정말 훌륭한 제안이에요, 스티븐! 감사합니다! 이렇게 단순한 기능이 기본값으로 주석 처리되어 있거나 어딘가에 문서화되어 있어야 할 것 같아요. 이제 여기에서 "CloudFlare"로 검색하면 관련해서 찾을 수 있으니 다행이에요. templates 폴더를 살펴봐야 한다는 생각은 전혀 하지 못했거든요! :slight_smile: