Рубин на рельсах.Как запустить два сервера (разные приложения) на Amazon Ec2 одновременно? - PullRequest
0 голосов
/ 24 мая 2018

Я трийн, чтобы развернуть два разных приложения rails в одном Ec2, я могу запускать по одному каждый раз и работать нормально, но мне нужно, чтобы приложение 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) [/]

также попробуйте запустить app1 с -b0.0.0.0, поэтому он может прослушивать откуда угодно, но результат тот же: только 1 приложение прослушивает 0.0.0.0.Чего мне не хватает?Как я могу запустить два сервера одновременно и слушать оба на 0.0.0.0.спасибо

1 Ответ

0 голосов
/ 25 мая 2018

По умолчанию, согласно документации Rails , сервер будет прослушивать только интерфейс localhost / loopback.На самом деле это подтверждается в опубликованном вами фрагменте вывода.

В первой команде для app1 вы не говорите ей прослушивать 0.0.0.0, поэтому вам нужно изменить первую командуto:

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

Оба приложения могут прослушивать 0.0.0.0, но они не могут использовать один и тот же порт.Вы уже настроили app1 для прослушивания на порту 3000 (по умолчанию для Rails) и app2 для прослушивания на порту 3001, поэтому они оба должны мирно сосуществовать, как только вы сделаете изменение выше.

См. Также: Что вам дает привязка Rails Server к 0.0.0.0?

...