2013-07-01 37 views
0

我有一个简单的Sinatra应用程序。它通过POST请求获取URL,处理该URL并返回代码。如何开始在生产中调试Sinatra应用程序?

它通过一个卷曲呼叫我的本地机器正常工作:

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 

但是,它不返回任何东西。流量肯定会进入tcpdump确认的EC2机器,但我不确定它是否实际上击中了Sinatra应用程序。

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

回答

0

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

rackup -p 80 
+0

即使它是SSL? (请注意POST请求中的https) – chintanparikh

+0

看起来它肯定要通过tcpdump的端口443 – chintanparikh

0

你需要改变安全政策,并允许通信端口4567

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

相关问题