【问题标题】:Rails server not starting with HTTP parse error, malformed request (): #<Puma::HttpParserError:Rails 服务器未以 HTTP 解析错误开始,请求格式错误 (): #<Puma::HttpParserError:
【发布时间】:2021-03-09 01:43:45
【问题描述】:

代码中断后,我收到以下错误。然后我使用 ctl + c 关闭服务器并确保没有运行 ruby​​ 或 rails 的进程。然而,当我尝试运行服务器时,它说同样的错误:

2017-01-03 13:08:24 +0600: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
2017-01-03 13:08:24 +0600: 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.6.0 Sleepy Sunday Serenity", "GATEWAY_INTERFACE"=>"CGI/1.2"}

【问题讨论】:

  • 我知道这已经有一个多月了,但你应该检查你是否连接到 http 而不是 https。

标签: ruby-on-rails ruby ruby-on-rails-5 puma


【解决方案1】:

这里有一些可能的解决方案。

  1. 确保您是通过http://localhost:3000 连接而不是https://localhost:3000

  2. 如果浏览器重定向到 HTTPS,请尝试清除浏览器缓存和 cookie。

  3. 如果浏览器仍重定向到 HTTPS 并且是 Google Chrome,请尝试解决 HSTS 问题的解决方案:https://stackoverflow.com/a/28586593

  4. 确保您没有强制使用 HTTPS 的生产环境(如果这是您所服务的)。如果这是问题所在,请将其注释掉:

在 config/environments/production.rb 中

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  config.force_ssl = true

【讨论】:

  • config/environments/production.rb你可能还需要设置Rails.application.routes.default_url_options[:protocol] = "http"
【解决方案2】:

当我不小心访问localhost:3000 时遇到了这个问题,而我的 localhost 项目在 Nginx 中配置为在/etc/hosts 中具有 TLS 证书和域名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多