使用resource_url时,Rails 2.3没有使用正确的协议ssl

时间:2015-07-08 00:02:46

标签: ruby-on-rails ssl

在rails 2.3应用程序中,我有这个简单的代码

redirect_to resource_url(resource)

我使用SSL连接(https)发出请求,但重定向到非SSL版本(http)

我检查过,resource_url正在抛出没有ssl的http。

Rails如何知道协议是否为https?我的设置使用Nginx和3个mongrel与负载平衡器。

我想知道问题是我的mongrel实例是否使用http。

有没有办法让mongrel实例知道与nginx的连接是否与ssl有关?

这真的是我的问题吗?

1 个答案:

答案 0 :(得分:0)

这是因为nginx配置了负载均衡器。基本上浏览器与Nginx建立SSL连接,但是nginx通过http与mongrel实例建立内部连接,并且他们不知道原始连接是否通过SSL。

解决方案是将此添加到nginx配置

 proxy_set_header X-Forwarded-Proto $scheme;