2011-04-07 40 views
0

我在Heroku上托管了一个Rails应用程序,哪些服务器生成了用于营销/搜索目的的页面。另一台服务器上有其他内容页面,这些页面是静态页面。我想让他们都在同一个域上,在这个域上构建seo的优点。如何使用同一个域来服务来自不同服务器的两个应用程序

例如:

domain.com/blah-blah-blah-something

应该真正从Heroku的服务器名称/等等,夸夸其谈出头加载页面,但它看起来像它的domain.com。

可能吗?

回答

0

该域的DNS记录只能指向一个IP地址(并因此指向服务器)。您可以配置您的基于heroku的应用程序,通过有效地获取网站并显示它来呈现来自其他服务器的内容。

我从这个链接借用了这个代码片段:

def fetch_url(url) 
    r = Net::HTTP.get_response(URI.parse(url)) 
    if r.is_a? Net::HTTPSuccess 
     r.body 
    else 
     nil 
    end 
    end 

    # use like this from your controller 
    @snippet = fetch_url "http://www.oreilly.com/" 

    # and in your page <%= @snippet %> 

http://answers.oreilly.com/topic/1052-ruby-on-rails-how-does-one-render-html-from-another-web-server-to-a-ruby-on-rails-app/

将有可能表现不佳像这样的任何请求,因为这将有效地采取两个请求的时间。

2

您可以使用HAProxy将站点放在前面并将其配置为进行内容切换。要做到这一点,你必须让前端监听映射到外部IP的内部IP地址。后端是您的服务器。您可以设置访问控制列表来确定要发送到哪个后端。例如,这可以通过一些路径名或文件扩展名(例如.html转到服务器A并且.aspx转到另一个)。最终,用户不知道他们在两台独立的服务器上,因为他们只能看到站点被服务在一个域名上。

注意:
1)您将无法共享会话(我相信您已经知道)。

2)HAProxy的不处理HTTPS,所以如果你需要HTTPS,那么你就必须有一些处理HTTPS终止,如nginx的或HAProxy的或安全通道。

希望这是适用的,因为我不熟悉的Heroku。

相关问题