Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails生产模式:SSL收到的记录超过了最大允许长度_Ruby On Rails_Webrick - Fatal编程技术网

Ruby on rails Rails生产模式:SSL收到的记录超过了最大允许长度

Ruby on rails Rails生产模式:SSL收到的记录超过了最大允许长度,ruby-on-rails,webrick,Ruby On Rails,Webrick,您好,我不确定这是否应该发生,但当我在终端中运行RAILS\u ENV=production RAILS server,然后尝试运行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

您好,我不确定这是否应该发生,但当我在终端中运行
RAILS\u ENV=production RAILS server
,然后尝试运行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)
我在某个地方读到,这可能是因为我的url是
https://localhost:3000/
而不是
http://localhost:3000/
是否在http后加上“S”?但我无法更改它,因为它一直自动转到https


这正常吗?我尝试在生产环境中运行它的原因是,当我尝试将我的应用程序部署到heroku时(这里提出的问题:)出现错误,所以我认为它会帮助我进行调试。

当尝试通过SSL访问Rails时,当它与
Rails服务器运行时,此错误是正常的,除非您破解默认的
rails服务器
脚本以支持SSL。你可以看看怎么做。也就是说,我建议不要在本地机器上通过SSL访问应用程序

在运行生产环境时,您的Rails应用程序中可能有一个重定向到SSL的配置。尝试暂时注释该配置,以便可以在生产环境中运行,而无需在本地计算机上配置SSL

在production.rb中查找:

config.force_ssl = true
或者,在application_controller.rb(或任何其他控制器)中查找:

注意:它们的名称相同,但在引擎盖下的工作方式非常不同

或者,您可以通过
Rails服务器
之外的其他web服务器在本地机器上运行Rails,但这超出了本问题的范围,您仍然需要将其配置为支持SSL。就我个人而言,我在本地机器上安装了nginx(带有unicorn)并带有自签名的SSL证书,这样我就可以轻松地在我的应用程序中测试SSL相关的行为


也可以考虑在本地机器上运行应用程序的同时调试应用程序的替代方法,但具体如何做取决于您试图调试的错误的性质。

对于我来说
config.force\u ssl=true
位于config/environments/production.rb

当我在
/etc/hosts
中添加我的机器的
主机名时,这个错误发生在我身上

所以它看起来像:

127.0.0.1     localhost MyMachine
::1       ip6-localhost MyMachine

在更新ipv6个人计算机名以在
ip6-
前面加上前缀后,Rails开始工作。

事实并非如此。前一位作者建议使用“production.rb或application\u controller.rb”。在我的例子中(希望帮助他人)“config.force_ssl=true”设置在文件“config/environments/production.rb”中。而且,当时我也没有权限将其添加为“评论”。您发布的博客文章的链接似乎已断开。没有加载。@Dhrubo_moy尝试一下很好。非常感谢你。我试着注释掉“config.force_ssl=true”行。但是仍然有SSL错误,RX错误,记录太长的错误。
127.0.0.1     localhost MyMachine
::1       ip6-localhost MyMachine