我在Heroku上托管了一个Rails应用程序,哪些服务器生成了用于营销/搜索目的的页面。另一台服务器上有其他内容页面,这些页面是静态页面。我想让他们都在同一个域上,在这个域上构建seo的优点。如何使用同一个域来服务来自不同服务器的两个应用程序
例如:
domain.com/blah-blah-blah-something
应该真正从Heroku的服务器名称/等等,夸夸其谈出头加载页面,但它看起来像它的domain.com。
可能吗?
我在Heroku上托管了一个Rails应用程序,哪些服务器生成了用于营销/搜索目的的页面。另一台服务器上有其他内容页面,这些页面是静态页面。我想让他们都在同一个域上,在这个域上构建seo的优点。如何使用同一个域来服务来自不同服务器的两个应用程序
例如:
domain.com/blah-blah-blah-something
应该真正从Heroku的服务器名称/等等,夸夸其谈出头加载页面,但它看起来像它的domain.com。
可能吗?
该域的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 %>
将有可能表现不佳像这样的任何请求,因为这将有效地采取两个请求的时间。
您可以使用HAProxy将站点放在前面并将其配置为进行内容切换。要做到这一点,你必须让前端监听映射到外部IP的内部IP地址。后端是您的服务器。您可以设置访问控制列表来确定要发送到哪个后端。例如,这可以通过一些路径名或文件扩展名(例如.html转到服务器A并且.aspx转到另一个)。最终,用户不知道他们在两台独立的服务器上,因为他们只能看到站点被服务在一个域名上。
注意:
1)您将无法共享会话(我相信您已经知道)。
2)HAProxy的不处理HTTPS,所以如果你需要HTTPS,那么你就必须有一些处理HTTPS终止,如nginx的或HAProxy的或安全通道。
希望这是适用的,因为我不熟悉的Heroku。