如何在生产中开始调试Sinatra应用程序?

时间:2013-07-01 21:22:08

标签: ruby debugging amazon-ec2 sinatra

我有一个简单的Sinatra应用程序。它通过POST请求获取URL,处理该URL并返回代码。

通过Curl调用在我的本地计算机上正常工作:

curl --data-urlencode "path=PATH_HERE" localhost:4567/process

它返回JSON响应。

但是,一旦生产(EC2),我会做类似的POST请求:

curl --insecure --data-urlencode "path=PATH_HERE" https://faxattach.staging.myaidin.com/process

然而,它并没有返回任何东西。流量肯定会流向EC2机器,tcpdump确认,但我不确定它是否真的击中了Sinatra应用程序。

我如何检查它是否正在击中Sinatra应用程序?日志文件保持不变,使用tail -f进行检查。并且,如果它没有打到应用程序,我将如何开始调查原因?

2 个答案:

答案 0 :(得分:0)

可能问题是端口问题。默认情况下,HTTP请求转到端口80.您可以在该端口上运行应用程序以解决问题:

rackup -p 80

答案 1 :(得分:0)

您需要更改安全策略并允许流量到端口4567.

或者,正如@ismael建议的那样,您可以在端口80上运行Rack服务器。这需要root权限,您可能需要使用sudo rackup -p 80rvmsudo rackup -p 80