2

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

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

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

我已经让客户编辑元标记“机器人”(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

4 回答 4

0

我不确定你是否还在这方面。如果是这样忽略。(更新:我看到了您原始帖子的注释,但这可能是有用的。)

如果您将对 robots.txt的调用映射http-handler 或类似的,您可以生成一个 dB 的响应。

于 2009-10-09T04:07:48.347 回答
0

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

于 2009-10-06T01:03:45.393 回答
0

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

于 2009-10-05T19:46:32.000 回答
0

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

于 2010-07-08T17:38:40.887 回答