我是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上同时监听。 谢谢
答案 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,因此一旦您进行了更改,它们应该和平共存。