部署成功,一切正常。但是当我们尝试访问应用程序 URL 时,它给出了 502 Bad Gateway
错误。
使用 ps -aux | grep puma
检查 puma 进程不会返回任何附加到 puma 服务器的进程,但 pgrep
返回以下内容。
$pgrep -fl puma
18009 su -s /bin/bash -c bundle exec puma -C /opt/elasticbeanstalk/support/conf/pumaconf.rb webapp
18031 ruby /opt/rubies/ruby-2.0.0-p598/bin/puma -C /opt/elasticbeanstalk/support/conf/pumaconf.rb
最佳答案
我已经尝试了所有可能的组合,如 nginx/puma 的所有其他论坛/博客或支持站点中所示。以下是状态。
我的问题是,
即使使用默认配置,Puma 也无法运行,因此 nginx 无法与 Puma 对话,因此 EC2 真的没有意义!
如果您对此有任何想法,请告诉我们,我们将如何解决此问题。
看到这个 - https://forums.aws.amazon.com/thread.jspa?messageID=608148򔞔
这个还是没有答案,这就像我们的手被铐住了,不能改变任何配置!
更新
AWS 正在以某种方式停止和启动 PUMA,因为在检查
ps -ef|grep puma
时我可以看到进程 ID 发生变化。因此,我启动 puma 在另一个端口上工作并尝试检查它是否运行。从另一个端口开始,然后从另一个控制台使用
wget http://127.0.0.1:3000
访问 URL。它打印以下日志。current]$ bundle exec puma -b tcp://127.0.0.1:3001
Puma 2.0.1 starting...
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://127.0.0.1:3001
Rails Error: Unable to access log file. Please ensure that /var/app/current/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Use Ctrl-C to stop
2015-03-16 13:19:35 +0000: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
2015-03-16 13:19:35 +0000: ENV: {"rack.version"=>[1, 1], "rack.errors"=>#<IO:<STDERR>>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "CONTENT_TYPE"=>"text/plain", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"2.0.1", "GATEWAY_INTERFACE"=>"CGI/1.2"}
那么,是否强制使用 SSL?因为我认为默认情况下,它没有启用。
关于ruby-on-rails - Elastic Beanstalk 上的 502 错误网关 nginx + puma + rails 3.2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29071627/