크롤러에 HTTP 프록시를 주면 요청이 사이트에 도달하는 방식이 달라집니다. 그러나 프록시가 robots.txt를 가져오거나 크롤러의 규칙 그룹을 고르거나 요청을 예의 있게 예약하게 되는 것은 아닙니다.

Robots Exclusion Protocol은 크롤러를 위한 규칙을 설명합니다. 일치, 가져오기 실패, 리디렉션, 캐시 동작을 포함합니다. 요청된 문서를 그저 중계하는 프록시는 크롤러를 대신해 그 정책을 구현한 것이 아닙니다.

규칙 판단은 크롤러의 요청 대기열 가까이에 두세요. 작업을 보내기 전에 의도한 신원, 대상 URI, 일정 상태가 갖춰지는 곳이 바로 거기입니다.

프록시 쪽 필터가 생각보다 어려운 이유

평문 HTTP에서는 특별히 만든 필터가 대상 경로와 User-Agent를 볼 수 있습니다. 그래도 실제 규칙 구현과, 해당 robots 파일을 가져오고 캐시하고 갱신하는 규정된 정책이 필요합니다. Disallow 몇 줄을 정적 주소 차단으로 바꾸는 것은 전체 프로토콜이 아닙니다.

일반적인 CONNECT를 통한 HTTPS에서는 포워드 프록시가 터널 목적지만 보고, 암호화된 각 페이지의 경로와 내부 User-Agent는 보지 못합니다. 다른 의도적인 장치가 제공하지 않는 한 경로 수준 robots 판단에 필요한 정보가 없습니다.

나가는 주소를 바꾼다고 금지된 경로가 허용되는 것도 아닙니다. 크롤러 활동을 공유하는 워커 사이에서 속도를 조율하세요. 경로를 돌려 쓰는 것은 그 정책을 대신하지 못합니다.

마지막으로 robots 규칙은 접근 권한이 아닙니다. 허용된 경로가 인증이나 사이트의 다른 접근 요건을 덮어쓰지 않으며, 공개 robots 파일은 비공개 콘텐츠를 보호하지 않습니다.

관련 글