首页 > 解决方案 > 来自 Blogger 的 Rails 重写链接

问题描述

我使用 rack-reverse-proxy 将我的 Blogger.com 设置为我的 Ruby on Rails 应用程序的子域:pulpoludo.com/blog

这是工作,但我对返回 blog.pulpoludo.com(我的 Blogger 博客是主机)的 Blogger 链接有疑问。

我想重写这个链接。但我不知道怎么做。你能帮助我吗?

(我发现有人在 PHP 中执行此操作:https ://matt-stannard.blogspot.com/2013/02/blogger-in-subdirectory-of-my-domain.html 但我想做同样的事情Rails 和宝石可能)

标签: ruby-on-railsredirectdirectorysubdomainblogger

解决方案


实际上,您不能使用 rack-reverse-proxy 因为它不允许您更改响应(您需要使用正则表达式替换来重写您检索的页面,如您链接到的示例中所示。

此外,您可能应该避免在生产中使用 rack-reverse-proxy,因为它会使您的 ruby​​ 进程忙于等待后端响应,这可能会失败或很慢。和:

它不适用于生产系统

您应该改为从您的前端 HTTP 接受器(nginx 或其他)代理。对于 nginx,您可以在https://stackoverflow.com/a/32543398/384417proxy_pass使用和的组合看到非常彻底的响应。sub_filter


编辑:如果无法使用 nginx 或其他反向代理,您仍然可以在 ruby​​ 中执行此操作。

rack-reverse-proxy支持转换器,您可以自己构建一个,并注册它以便在响应上运行。这个(关闭的)问题会有所帮助,这正是您所需要的:https ://github.com/waterlink/rack-reverse-proxy/issues/65 。警告(与更改响应时一样)是您必须更新Content-Length响应标头以匹配更新后的正文大小。


推荐阅读