ruby-on-rails - Rails 2.3 在使用 resource_url 时没有使用正确的协议(protocol) ssl

标签 ruby-on-rails ssl

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

redirect_to resource_url(resource)

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

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

Rails 如何知道协议(protocol)是否为 https?我的设置使用 Nginx 和 3 个带有负载平衡器的杂种。

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

有没有办法让 mongrel 实例知道与 nginx 的连接是通过 ssl 进行的?

这真的是我的问题吗?

最佳答案

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

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

 proxy_set_header X-Forwarded-Proto $scheme;

关于ruby-on-rails - Rails 2.3 在使用 resource_url 时没有使用正确的协议(protocol) ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281418/

相关文章:

docker - 如何更正 nginx 单元文件中的无效转义序列

git - 导入错误:没有名为 sslscan 的模块

wordpress - 混合内容 : The page was loaded over HTTPS, 但请求了不安全的图像

java - 以编程方式或通过命令行分析 SSL 证书

ruby-on-rails - Rails - 捕获 'Invalid Authenticity Token' 异常

ruby-on-rails - simple_form 将类添加到表单

ruby-on-rails - Rails 应用程序无法连接到 PostgreSQL

ruby-on-rails - 从关联方法中访问 Rails proxy_association.owner

ruby-on-rails - 在 grape api 端点中验证事件管理员用户

ssl - 用于私有(private)域注册的 SSL 证书的 whois 验证