我有一个简单的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
进行检查。并且,如果它没有打到应用程序,我将如何开始调查原因?
答案 0 :(得分:0)
可能问题是端口问题。默认情况下,HTTP请求转到端口80.您可以在该端口上运行应用程序以解决问题:
rackup -p 80
答案 1 :(得分:0)
您需要更改安全策略并允许流量到端口4567.
或者,正如@ismael建议的那样,您可以在端口80上运行Rack服务器。这需要root权限,您可能需要使用sudo rackup -p 80
或rvmsudo rackup -p 80
。