2009-10-05 4 views
2

우리 웹 서버의로드 밸런싱을 곧 시작해야 할 것처럼 보입니다.부하 분산 환경에서 robots.txt를 어떻게 동적으로 편집합니까?

한 호스트에서 문제가되지 않는 robots.txt를 동적으로 편집하라는 기능 요청이 있습니다.하지만 일단로드 밸런서를 설치하고 나면 파일을 scp로 보내야합니다. 다른 호스트.

매우 '나빠'는 것 같습니다. 이 상황을 어떻게 처리할까요?

나는 이미 (imo) 그가 robots.txt 편집에서 원하는 것과 동일한 작업을 효과적으로 수행해야하는 메타 태그 'robots'를 편집 할 수있게했지만 실제로 그 점은 SEO에 대해 많이 알지 못합니다.

아마도 이것을 처리하는 완전히 다른 방법이 있을까요? 우리는 지금 (S3)에 저장됩니다 및 memcache는 프론트 사이드 ...

우리는 그래서 우리는 Merb는을 사용하는 NOW

을 IT를 어떻게하고 같은

UPDATE

보인다. . robots.txt에 경로를 다음과 같이 매핑했습니다.

match('/robots.txt').to(:controller => 'welcome', :action => 'robots') 

관련 코드는 다음과 같습니다.

def robots 
    @cache = MMCACHE.clone 
    begin 
    robot = @cache.get("/robots/robots.txt") 
    rescue 
    robot = S3.get('robots', "robots.txt") 
    @cache.set("/robots/robots.txt", robot, 0) 
    end 
    @cache.quit 
    return robot 
end 
+0

이 질문은 serverfault에서 더 좋을 수도 있지만 복제 에이전트가 처리하지 못한 이유가 있습니까? 어쨌든 서버간에 어떤 종류의 복제 정책이 필요할 것입니다. 왜 그렇게 할 수없는 이유가 있습니까? –

+0

yeh .. 만약 지금 DB가 DB에 저장되어 있다면 ... 아주 추한 소리가납니다 ... – eyberg

답변

0

응용 프로그램에서 robots.txt의 내용을 편집하고 사용자 입력을 데이터베이스에 저장하도록 할 수 있습니다. 그런 다음 특정 간격으로 백그라운드 프로세스를 통해 DB에서 최신 데이터를 가져 와서 서버로 푸시합니다.

+0

예 .. 이것은 제가 피하려고하는 것입니다 ... 나는 사실을 좋아하지 않습니다. 서버 업데이트를 푸시해야하는 경우 ... – eyberg

+0

데이터베이스에 저장소가 있으면 업데이트를 푸시 할 필요가 없습니다. – eyberg

+0

잘하면 robots.txt 파일에 있습니다. 서버 –

0

대안으로는 robots.txt를 다르게 처리하는로드 균형 조정을 수행하는 역방향 프록시가 있어야합니다. 역방향 프록시에서 직접 서비스를 제공하거나 해당 파일에 대한 모든 요청을 단일 서버로 보낼 수 있습니다. robots.txt는 상대적으로 드물게 필요하기 때문에 많은 의미가 있습니다.

0

아직 집에 계시는지 확실하지 않습니다. 그렇다면 무시하십시오. (UPDATE : 나는 원래 게시물에 메모를 볼 수 있지만,이 유용 reagrdless 수 있습니다.) 당신 HTTP 핸들러 또는 유사한에의 robots.txt를 호출를 매핑하는 경우

, 당신은 응답을 생성 할 수 있습니다 from a dB.

+0

예 - 우리가 매핑을 끝냈습니다 ... 지금 내 노트를 업데이 트합니다. – eyberg

0

사용중인 동적 콘텐츠 생성을 통해 제공하십시오. 그것의 단지 파일. 특별한 것은 없다.

관련 문제