요약하자면, CloudFlare는 일반적인 CDN이 아니기 때문입니다.
회색 구름은 해당 주소에 대해 CloudFlare가 DNS만 제공한다는 것을 의미합니다.
주황색 구름을 활성화하면 외부에 표시되는 IP 주소를 변경하고 모든 트래픽을 자체 네트워크를 통해 프록시합니다. 이를 통해 서버를 '보호’하는 동시에 이미지와 JavaScript와 같은 자산을 캐싱할 수 있습니다.
이 템플릿이 필요한 이유는 CloudFlare가 사이트와 외부 세계 사이에 위치하게 되면 서버가 연결되는 것으로 보는 것이 CloudFlare IP뿐이 되기 때문입니다. 템플릿을 사용하면 CloudFlare가 CF-Connecting-IP 헤더로 전달하는 클라이언트 IP 주소를 사이트가 다시 확인할 수 있습니다.
이 설정을 올바르게 하지 않으면 모든 사용자 트래픽이 소수의 주소에서 오는 것처럼 보이게 되어 연결 제한 오류와 등록 IP 주소 관련 오류가 발생합니다.
CloudFlare CDN(주황색 구름)을 활성화하기로 결정했다면, Discourse 인스턴스 주소에 대한 페이지 규칙을 설정하는 한 단계 더 진행해야 합니다. 이 규칙은 '성능 비활성화(Disable Performance)'를 설정해야 하며, 이는 Discourse와 충돌이 잘 문서화된 CloudFlare 기능을 끄는 것입니다.
S3 버킷 대신 CloudFlare를 사이트 앞에 배치하고 있다면, 서버와 인터넷상의 클라이언트 사이에 추가적인 네트워크 홉이 생겼다는 점을 기억하세요. Discourse는 웹사이트가 아니라 JavaScript 애플리케이션입니다. 브라우저에서 Discourse가 로드된 후 사용자가 링크를 클릭할 때 페이지를 다운로드하지 않습니다. 이러한 추가 네트워크 홉은 모든 클릭에 작지만 완전히 무시할 수 없는 지연을 유발합니다.
사이트가 공격을 받고 있지 않다면, CloudFlare를 지능적으로 사용하는 방법은 자산을 S3(오브젝트 스토리지, CDN이 아님)로 이전한 다음 그 S3 스토리지 앞에 CloudFlare를 사용하는 것입니다. 이렇게 하면 클라이언트 통신이 빠르고, 자산 다운로드 대역폭이 줄며, 무엇보다 Discourse 서버의 로컬 저장소를 확보할 수 있습니다.