gpt4 book ai didi

ruby-on-rails - Ruby on Rails Thin 和 force_ssl,通过 HTTP 的空响应

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:48 25 4
gpt4 key购买 nike

我最近在 CentOS 7.x 上设置了几个 Ruby on Rails 服务器,使用 Thin 作为 Web 服务器和来自 Comodo 的 SSL 证书。

我已经启用了 force_ssl我的选项 config/environments/production.rb文件,我正在使用以下命令运行我的服务器:

RAILS_ENV=production thin start -a <IP> -p 3000 --ssl --ssl-key-file <KEY FILE PATH> --ssl-cert-file <CERT FILE PATH>

我正在使用设计,所以在 config/initializers/devise.rb我设置

config.rememberable_options = { secure: true }

我还在 config/initializers/session_store.rb 中设置了一些配置

Rails.application.config.session_store :cookie_store, key: '_secure_<domain>_session', httponly: true, secure: true

当我第一次从 Internet 浏览器通过 HTTP 访问我的服务器时,我收到一条空的响应消息(已使用多个浏览器和多台计算机进行测试)。当我直接通过 https 访问它时,它解析得很好(并且 SSL 工作正常),当我下次尝试通过 http 访问它时,它重定向就好了。我不确定如何使用 nginx 或 Apache 修复此栏。

以下是我读过的其他问题:

最佳答案

Thin 只能监听一个端口,并且每个实例只能服务于 SSL 或非 SSL 请求。当使用 --ssl 启动 thin 时,它会尝试将入站连接作为 TLS 连接进行处理,并将丢弃那些它无法协商的连接(即纯 HTTP 请求)。

你需要使用nginx(或其他一些反向代理)来监听多个端口并终止SSL,然后转发给Thin。否则,您将需要运行多个 Thin 实例,一个提供 SSL,另一个不提供。

关于ruby-on-rails - Ruby on Rails Thin 和 force_ssl,通过 HTTP 的空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37755052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com