ruby-on-rails – Rails生产模式:SSL收到的记录超过了允许的最
嗨,我不确定这是否应该发生,但是当我在我的终端中执行RAILS_ENV =生产rails服务器然后尝试运行localhost:3000时,它会给我一个错误:
Secure Connection Failed An error occurred during a connection to localhost:3000. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long) 我读到某个地方可能是因为我的网址是https:// localhost:3000 /而不是http:// localhost:3000 / http后面带有“S”?但我不能改变它,因为它会自动进入https. 这是正常的吗?我试图在生产中运行它的原因是因为当我尝试将我的应用程序部署到heroku时遇到错误(问题在这里问:Rails + Heroku : ActionView::Template::Error)所以我认为它会帮助我调试. 解决方法
当使用rails服务器运行时,尝试通过SSL访问Rails时,此错误是正常的,除非您破解默认的rails服务器脚本以支持SSL.你可以看到
this blog post如何做到这一点.也就是说,我建议您不要在本地计算机上通过SSL访问您的应用程序.
在运行生产环境时,Rails应用程序中可能有一个配置重定向到SSL.尝试暂时注释掉该配置,以便您无需在本地计算机上配置SSL即可在生产环境中运行. 在production.rb中查找: config.force_ssl = true 或者,查看application_controller.rb(或任何其他控制器): force_ssl 注意:它们具有相同的名称,但在引擎盖下它们的工作方式却截然不同. 或者,您可以通过除rails服务器之外的其他Web服务器在本地计算机上运行Rails,但这超出了此问题的范围,您仍然需要将其配置为支持SSL.我个人在我的本地机器上安装了nginx(使用独角兽)并使用自签名SSL证书,以便我可以在我的应用程序中轻松测试与SSL相关的行为. 此外,除了在本地计算机上的生产中运行它之外,您可能会考虑调试应用程序的其他方法,但具体如何做到这一点取决于您尝试调试的错误的性质. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |