【问题标题】:Ruby on Rails. How to run two servers (different apps) on Amazon Ec2 at same time?Ruby on Rails。如何在 Amazon Ec2 上同时运行两台服务器(不同的应用程序)?
【发布时间】:2018-11-04 00:31:09
【问题描述】:

我很想在一个 Ec2 中部署两个不同的 Rails 应用程序,我每次可以运行一个并且工作正常,但我需要同时运行 2 个应用程序,并且可以从任何地方访问,不仅是本地主机,我启用(添加规则)两个 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 上同时收听。 谢谢

【问题讨论】:

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


【解决方案1】:

默认情况下,根据Rails documentation,服务器只会监听localhost/loopback接口。这实际上在您发布的输出 sn-p 中得到了证实。

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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多