1

我有一个在 Amazon ec2 上的实例上运行的 Rails 应用程序。它通过负载均衡器提供服务。

我第一次将我的应用程序部署到它时工作正常。今天我再次运行“cap deploy”。从那以后,我一直收到 504 Gateway Timeout 错误。

我可以通过 ssh 进入实例。我已验证我的部署正在替换实例中的代码。我还通过 ssh 连接到实例并使用 telnet 连接到 localhost:80。它可以工作,但是当我输入“GET / HTTP/1.1”时,它会返回 200 错误

我试图从访问我的生产日志开始。但是由于某种原因,生产日志文件不存在!我在生产中检查了我的 config.log_level 并将其设置为 :debug,但无济于事。

我还尝试直接访问实例 IP 地址,而不是通过负载均衡器,但仍然出现相同的错误 - 这可能意味着它不是负载均衡器有问题。

我在这里看到了一个相关的问题 -使用橡胶在 ec2 上部署后保持 504 网关超时

但是,我无法理解答案,我不确定它有多过时。如果有人可以详细说明或提供替代解决方案,或者只是有关如何开始解决此问题的提示,我将不胜感激!

更新:我做了一些调试并探索了 /var/log/apache2 的日志,这帮助我修复了几个错误。我不再看到 504 网关超时。相反,我看到以下错误:

[ pid=32526 thr=140043323348800 file=ext/apache2/Hooks.cpp:862 time=2012-11-01 02:43:06.843 ]: Unexpected error in mod_passenger: Cannot spawn application '/mnt/tpot-production/releases/20121031194109': An error occured while spawning the application.
  Backtrace:
     in 'virtual Passenger::SessionPtr Passenger::ApplicationPool::Client::get(const Passenger::PoolOptions&)' (Client.h:742)
     in 'Passenger::SessionPtr Hooks::getSession(const Passenger::PoolOptions&)' (Hooks.cpp:294)
     in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:563)

[Thu Nov 01 02:47:41 2012] [notice] caught SIGTERM, shutting down

https://gist.github.com/3992814

4

0 回答 0