如何在负载均衡的环境中动态编辑robots.txt?

时间:2009-10-05 19:34:49

标签: seo load-balancing robots.txt

看起来我们不得不在这里开始对我们的网络服务器进行负载均衡。

我们有一个动态编辑robots.txt的功能请求,这对于一个主机来说不是问题 - 但是一旦我们启动了负载均衡器 - 听起来我必须将文件scp到另一个(多个)主机。

这听起来非常糟糕。你会如何处理这种情况?

我已经让客户编辑了meta标签'robots',其中(imo)应该从robots.txt编辑中有效地做同样的事情,但我真的不太了解SEO。

也许有一种完全不同的处理方式?

更新

看起来我们现在将它存储在s3中,并将它存储在前端...

我们现在如何做

所以我们正在使用merb ..我将路径映射到我们的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

4 个答案:

答案 0 :(得分:0)

我可能让应用编辑robots.txt的内容并将用户输入保存到数据库中。然后在一定的时间间隔内,让后台进程从数据库中提取最新信息并推送到您的服务器。

答案 1 :(得分:0)

另一种方法是让负载均衡的反向代理以不同方式处理robots.txt。您可以直接从反向代理服务它,或者将该文件的所有请求都发送到单个服务器。它很有意义,因为robots.txt的需求相对较少。

答案 2 :(得分:0)

我不确定你是否回家了。如果这样忽略。 (更新:我看到你原来帖子的注释,但这可能是有用的。)

如果将呼叫映射到robots.txt到 http-handler或类似,您可以生成响应,例如dB。

答案 3 :(得分:0)

通过您正在使用的任何动态内容生成来提供服务。它只是一个文件。没什么特别的。