如何使用同一域下的WP博客代理heroku中的rails应用程序

时间:2016-01-09 00:26:48

标签: wordpress apache amazon-web-services heroku nginx

我有这个:

  • Heroku上的rails应用程序,服务器mydomain.com
  • 另一个托管上的WP站点(我可以移动到AWS ..甚至是heroku)

我需要mydomain.com/blog为WP安装服务,我不希望它成为SEO的子域名。

我的第一个想法是在AWS上的实例上将apache / nginx设置为反向代理。但是我担心这种设置不是最佳的,因为后端在不同的服务中。

可以将heroku dyno设置为代理吗?我知道没有办法修改heroku上的系统文件,比如创建自定义nginx设置来执行代理。我想知道是否有一些应用程序可以作为代理使用并且可以安装在heroku中,接下来也可以在heroku中设置博客。

或者最好在与heroku相同的区域(us-west1)中将AWS实例设置为代理,并在那里设置博客。

我对每种解决方案的优缺点感兴趣,并且最好的方法是什么。

1 个答案:

答案 0 :(得分:0)

我已经在很长一段时间内解决了Rails和WP同样的问题。

我的配置和结果:

  • Rails应用程序托管在heroku(www.sexycrets.com)
  • WP博客托管在另一台服务器上(blog.sexycrets.com)
  • 当浏览器请求www.sexycrets.com/blog时,如果浏览blog.sexycrets.com并且浏览器上的网址保持不变,则会收到他将收到的相同html页面

    1. 我是如何实现的

一个适用于SEO的解决方案是使用gem作为反向代理(我使用Github的drewwed / rack-reverse-proxy)。您可以将其配置为拦截路由" / blog" (以及" / blog /")因此,每当Rails被要求/博客时,它都会通过后端调用加载您的WP站点并将其返回给用户。除了引入的延迟之外,从用户浏览器的角度来看,这是一个完全透明的操作。用户浏览器无法知道响应中返回的博客页面是从另一台服务器加载的,浏览器上的URL仍然是" www.sexycrets.com/blog"。

  • 优点:满足SEO要求
  • 缺点:性能,因为反向代理在引入的延迟方面不是非常高效

    1. 替代

为了完整起见,我尝试的另一个选项是在heroku上托管的静态页面中使用iFrame来加载WP。问题是,为了避免循环引用它的工作,WP博客中的所有链接都必须指向blog.sexycret.com(而不是www.sexycrets.com/blog),这部分地破坏了SEO目的。

  • 优点:性能非常好,因为它甚至没有使用Rails:用户浏览器加载静态的/public/blog/index.html页面,其中只包含指向WP博客的iFrame
  • 缺点:博客中的链接不是指向主域,而是指向第3级域名击败

希望这有帮助!