현재 LB + CDN 을 사용하고 있습니다. dns 에서 lb 서버 ip 로 등록했구요. 헤더 체크하고 캐시설정 되어있으면 cdn 에서 몽땅 해결하는 방식이네요.
문제는 cdn 을 사용하면 스팸필터가 말을 제대로 안듣습니다.
비회원들은 무조건 recaptcha 를 사용하게 했는데, 스팸필터에 ip 를 등록하면 몇분후에 (cdn 캐싱 후 추정) 비회원들이 recaptcha를 성공해도 “블록된 ip” 메세지가 뜹니다.
DB - 서버 - xe캐시 - 스팸필터 - cdn
어딘가에 쿵짝이 안맞아서 나는 에러같은데요. 서버에서 무언가가 캐싱되면 스팸필터가 제대로 작동 안하는거 같아요. 어느파일을 캐싱 안해줘야 스팸필터가 제대로 작동할런지 궁금합니다. 참고로 cdn 끄면 또 잘되요.
효율적으론 서버 방화벽에서 ip 블록하는게 가장 좋은거같긴한데, 나중에라도 사이트 관리를 양도하게되면 스팸필터 기능을 전달드리고 싶어서요. 그분들은 방화벽 사용이 벅차실 듯...
LB와 CDN을 거치면서 이용자들의 실제 IP 주소가 제대로 파악되지 않고 있는 것 아닐까요? 예를 들어 클라우드플레어를 사용하면서 별도의 조치를 취하지 않으면 모든 이용자의 IP가 불과 수십 개의 클플 IP로 집중되어서, 한 명이라도 차단하면 해당 클플 IP에 배정된 모든 이용자가 차단되어 버리는 문제가 있습니다.
XE에서 생성하는 모든 웹페이지에는 캐시 방지 헤더가 붙어 있기 때문에 (슈퍼캐시 모듈에서 경고를 무시하고 쓸데없이 강력한 캐시 기능을 켜지 않는 한) 웹페이지 자체가 캐싱되는 일은 없습니다.