Ruby on Rails。如何在Amazon Ec2上同时运行两个服务器(不同的应用程序)?

时间:2018-05-24 17:32:36

标签: ruby-on-rails amazon-web-services amazon-ec2 ruby-on-rails-5

我是triyn在一个Ec2中部署两个不同的rails应用程序我可以每次运行一个并且正常工作,但我需要同时运行的2个应用程序,并且可以从任何地方访问,不仅是localhost,我启用(添加规则)两个tcp端口3000和3001,这是我的尝试:

/path/app1$ rails s -d 

/path/app2$ rails s -b0.0.0.0 -p 3001 -d

这是ps -ef命令输出

dev+  3028     1  0 17:10 ?        00:00:00 puma 3.11.2 (tcp://localhost:3000) [/]
dev+  3160     1  0 17:14 ?        00:00:00 puma 3.11.3 (tcp://0.0.0.0:3001) [/]

还尝试使用-b0.0.0.0运行app1,这样它就可以从任何地方收听,但结果相同:只有1个应用正在监听0.0.0.0。 我错过了什么?如何同时运行两台服务器并在0.0.0.0上同时监听。 谢谢

1 个答案:

答案 0 :(得分:1)

默认情况下,根据Rails documentation,服务器只会侦听localhost / loopback接口。这实际上是在您发布的输出片段中确认的。

app1的第一个命令中,您无法通知0.0.0.0,因此您需要将第一个命令更改为:

/path/app1$ rails s -b0.0.0.0 -p 3000 -d 

两个应用程序都可以监听0.0.0.0,但它们无法共享同一个端口。您已经将app1配置为侦听端口3000(默认为Rails),并app2监听端口3001,因此一旦您进行了更改,它们应该和平共存。

另请参阅:What does binding a Rails Server to 0.0.0.0 buy you?