我在Heroku上托管了一个Rails应用程序,服务器生成用于营销/搜索目的的页面。我在另一台服务器上有其他内容页面,它们是静态页面。我希望将它们保存在同一个域中,以便在该域上构建seo良好。
示例:
domain.com/blah-blah-blah-something
应该真的从heroku-server-name / blah-blah-blah-something加载一个页面,但它看起来像来自domain.com。
可能的?
答案 0 :(得分:2)
您可以使用HAProxy将站点置于前面,并将其配置为进行内容切换。要执行此操作,您可以使用前端侦听映射到外部IP的某个内部IP地址。后端是您的服务器。您设置访问控制列表以确定要发送到哪个后端。例如,这可以通过一些路径名或文件扩展名(例如.html转到服务器A而.aspx转到另一个)。最后,用户不知道他们在两个单独的服务器上,因为他们只看到在一个域名上提供的站点。
注意:
1)您将无法分享会话(我相信您已经知道了)。
2)HAProxy不处理https,因此如果您需要https,那么您将需要处理https终止,例如nginx或haproxy或stunnel。
希望这是适用的,因为我不熟悉heroku。
答案 1 :(得分: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 %>
对于这样的任何请求,性能可能会很差,因为它会有效地占用两个请求的时间。