加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

ruby-on-rails – 将重定向发送到特定端口

发布时间:2020-12-13 21:33:58 所属栏目:Nginx 来源:网络整理
导读:我有一个正在侦听端口9000的Rails应用程序服务器,并且正在通过haproxy进行调用.来自该服务器的所有重定向都将通过端口9000重定向,当它们应该在端口80上发送回来时. 我正在使用haproxy nginx乘客的组合.有没有办法确保所有重定向都通过端口80发送,无论实际服

我有一个正在侦听端口9000的Rails应用程序服务器,并且正在通过haproxy进行调用.来自该服务器的所有重定向都将通过端口9000重定向,当它们应该在端口80上发送回来时.

我正在使用haproxy nginx乘客的组合.有没有办法确保所有重定向都通过端口80发送,无论实际服务器正在侦听哪个端口?

我不在乎它的haproxy,nginx,Passenger或Rails是否会发生变化.除非另有说明,否则我只需要确保大多数请求都被发送回端口80.

谢谢!

最佳答案
就像elektronaut指出的那样,这可能是你的代理配置中应该处理的事情.也就是说,ActiveSupport :: UrlFor#url_for有一些可能有用的信息.看看http://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/url_for.rb

我认为归结为将两个参数传递给url_for和/或link_to调用.首先是:port => 123参数,第二个是:only_path => false,以便生成包括域,端口等在内的完整链接.

因此,在生成链接时,您可能会:

link_to 'test',root_url(:port => 80,:only_path => false)

在创建自定义网址时,您可以执行以下操作:

url_for :controller => 'test',:action => 'index',:port => 80,:only_path => false

对于重定向:

redirect_to root_url(:port => 80,:only_path => false)

我希望这会有所帮助,如果没有,您可以更具体地说明如何生成URL,为您生成哪些rails,以及您希望它生成什么.

更新:
我不知道这一点,但似乎你可以设置URL的rails生成的默认值url_for,生成链接和/或URL的其他所有内容都使用它.这里有一篇很好的文章:http://lucastej.blogspot.com/2008/01/ruby-on-rails-how-to-set-urlfor.html

或者总结一下:

将其添加到您的application_controler.rb中

def default_url_options(options)
   { :only_path => false,:port => 80 }
end

还有这个:

helper_method :url_for

第一个块设置控制器中的默认值,第二个块使url_for帮助器使用控制器中找到的默认值,因此默认值也适用于控制器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读