Nic*_*ril 6 ruby-on-rails puma
在尝试运行Ruby on Rails应用程序时,我在终端中看到以下错误.
HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
2017-03-12 13:10:02 -0400: ENV: {"rack.version"=>[1, 3], "rack.errors"=>#<IO:<STDERR>>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.4.0 Owl Bowl Brawl", "GATEWAY_INTERFACE"=>"CGI/1.2"}
Run Code Online (Sandbox Code Playgroud)
浏览器错误:
This site can’t provide a secure connection. localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR*
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容
这是一些可能的解决方案.
如果浏览器重定向到HTTPS并且是谷歌浏览器,请尝试解决HSTS问题的解决方案:https://stackoverflow.com/a/28586593
确保您没有强制HTTPS的生产环境(如果这就是您所服务的).如果这是问题,请将其注释掉或更改true为false:
配置/环境/ production.rb
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
Run Code Online (Sandbox Code Playgroud)似乎您正在尝试在本地运行 HTTPS。您需要在本地安装 TLS 工具包(如 openSSL)。 以 OPENSSL 为例。
在您确定之后,如果仍然无法正常工作,也许您可以在下一期 Github 问题中找到答案。似乎是 Puma gem 的错误。 GitHub 问题讨论
对于那些将来阅读本文的人,请考虑以下事项:
如果您可以在开发环境中关闭 SSL,则可以通过以下方式执行此操作:
config/environments/development.rb 并配置:
config.force_ssl = false
这是一些对我有用的代码,使用 puma,调用 SSL 认证(本地)。我已经创建了我的证书并将其转储到相关位置:
rails s -b 'ssl://localhost:3000?key=./.ssl/localhost.key&cert=./.ssl/localhost.crt'
当我想从我的 PC 在生产环境中运行它时,我使用以下命令:
rails s -b 'ssl://localhost:3000?key=./.ssl/localhost.key&cert=./.ssl/localhost.crt' -e production
HTH
| 归档时间: |
|
| 查看次数: |
9100 次 |
| 最近记录: |