ruby-on-rails - 来自 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 和宝石可能)
解决方案
实际上,您不能使用 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
响应标头以匹配更新后的正文大小。
推荐阅读
- c - 数据比 malloc 声明的大怎么办?
- spring - 无法将shell指向本地spring云数据流服务器?
- hadoop - 是否可以仅针对 reducer 任务增加容器大小?
- python - 根据包含集合的列合并两个数据框
- c# - 将新记录插入数据库时,WPF MVVM ListView 未更新
- python - 使用 Pandas 将 groupby.sum() 的结果映射到另一个数据帧?
- android - 如何在 Android Studio 预览窗口中显示使用合并标签创建的自定义视图
- java - 一个整数的降序排列
- reactjs - 对象不支持属性或方法“readFile”(节点:fs)
- android - gradle > Task :app:externalNativeBuildDebug FAILED android_gradle_build.json (没有这样的文件或目录)