主机博客在不同的服务器?

时间:2009-12-10 12:47:40

标签: scaling blogs

目前,我的公司博客与我们的主要网络应用程序位于同一服务器上 - 如example.com/blog

将博客移至其他服务器的最简单方法是什么,但仍允许用户访问example.com/blogblog.example.com上的博客?

5 个答案:

答案 0 :(得分:2)

问题301 HTTP重定向从website.com/blog到blog.website.com

具体细节取决于服务器。

答案 1 :(得分:2)

我提供的答案是假设您使用Apache作为网络服务器,因为这是我所熟悉的。如果您使用的是IIS,那么您可以找到类似的解决方案,但我不能保证这一点。

在过去,我遇到过类似的问题,即客户在www.mydomain.com上托管他们的主要网站,但他们的博客由他们的营销人员在blog.mydomain.com托管。出于搜索引擎优化的目的,将博客显示在www.mydomain.com/blog上是有益的,尽管由于DNS协议的性质,这在物理上是不可能的。

答案是使用名为mod_proxy的Apache模块,它允许您将URL /博客映射到子域,这对最终用户,更重要的是搜索引擎是不可见的。 CodeHaus发表了一篇关于Configuring mod_proxy的好文章(2016年更新:链接领先),您可能希望阅读。

mod_proxy非常复杂,可能需要一段时间才能正确设置,但它是目前解决问题的最佳解决方案。

答案 2 :(得分:1)

您可以使用简单的javascript重定向代码(例如下面的代码重定向用户)。

<script type="text/javascript">
<!--
window.location = "http://www.example.com/";
//-->
</script>

答案 3 :(得分:0)

您是在自己的数据中心托管这些服务器,还是在购买托管?我们的企业站点托管在我们数据中心的多台服务器上。我们使用负载平衡器根据URL将流量路由到不同的服务器场。所以

http://www.foo.com/assets/ *可能会路由到Apache HTTP服务器的服务器场,只在

时提供图像文件

http://www.foo.com/apps/ *可能会路由到JEE应用程序服务器场和

http://www.foo.com/services/ *可能会路由到专门用于托管Web服务的服务器场和

http://www.foo.com/blog/ *可能会路由到只处理WordPress的服务器场。

效果很好......如果您拥有所有这些,请随时使用。如果你不这样做,那么请查看mod_proxy,就像Matt所说的那样(我们在购买负载平衡器之前使用过)。

答案 4 :(得分:0)

blog.example.com

blog.example.com最简单,因为您可以简单地将其指向不同的IP地址。

这不是我想要的项目。

example.com/blog

相反,我使用Apache mod_proxy/blog指向另一台服务器。 Apache文档here

这很有效:

ProxyPass /blog http://blog.example.com/
ProxyPassReverse /blog http://blog.example.com/

但只有在正确加载代理模块之后:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

注释

  • 由于CloudFlare,我还必须使用其他主机名来托管博客,而不是*.example.com
  • 我在Disallow: /添加了blog.example.com/robots.txt。像这样,搜索引擎不会在两个位置开始索引。搜索引擎只会忽略blog/robots.txt