向heroku添加反向代理
我有一个在heroku上运行的rails应用程序,例如myapp.herokuapp.com。
现在我想将代理从myapp.heroku.com/proxy/
反向到somewhereelse.com/
(即: myapp.heroku.com/proxy/stuff
反向代理到somewhereelse.com/stuff
有可能吗? 怎么做到这一点?
对于通过搜索来到这个问题的任何人,都可以做到这一点。
查看https://github.com/ryandotsmith/nginx-buildpack到供应商nginx到你的heroku实例。 这会将nginx放在rails应用程序的前面,并允许您在此域上反转代理请求,将heroku应用程序配置为顶点并允许somewhereelse.com/stuff转到其他位置。
您无法访问前端路由基础结构,因此无法添加类似基于nginx位置的反向代理或apache的modproxy。 根据我的理解,你只能绑定到dyno中的一个端口($ PORT),所以不可能用你自己的nginx出售版本来影响你的Rails应用程序(除非可以通过非TCP / IP套接字之间进行通信) nginx和你的机架/ rails应用程序,如果是这种情况,那么也许你可以让机架听取/tmp/mysocket.git和nginx来反向代理这个,这可能是一个没有首发,但我只是抛出想法) 。
这意味着唯一可能的选择,如果你必须自己在rails应用程序中处理它,我只有一点点rails / ruby经验,但如果rails中没有代理function那么你也许你可以明确接受路由然后使用http客户端来调用其他部分。
- 从AWS S3读取CSV文件时获取“Errno :: ENOENT:没有此类文件或目录@ rb_sysopen”
- 在heroku上安装MaxMind GeoIP ruby库
- 无法通过Bundler安装gem。 远程:! 遥控器:遥控器:! 推送拒绝,无法编译Ruby app remote:
- Rails 4 session.id偶尔为零
- Heroku Rails设置“您正在寻找的页面不存在。”
- 多个heroku帐户无法正常工作
- 在Heroku – Rails中安装gem’pg’的问题
- 如何设置Rails 4,Resque 2与Foreman一起运行?
- 通过Heroku上托管的Rails上传和解压缩文件到S3?