Во-первых, ура! Это мой первый пост на Stack Overflow, постараюсь не делать глупостей :). Я провел последние 3 дня, ломая голову над этой проблемой и гугля, но так и не нашел решения, каким бы простым оно ни было.
Я настроил новый экземпляр EC2 (под управлением Ubuntu 16.04) и создал новое приложение Rails (v 5.1.6) с помощью простого каркаса:
rails new test_app
cd test_app
В этот момент Rails пожаловался, что мне пришлось установить гем 'listen', что я и сделал (v 3.1.5). Затем я поступил следующим образом:
rails g scaffold article title:string
rails db:create
rails db:migrate
Пока все хорошо. Затем я настроил группы безопасности AWS и правильно разрешил TCP-соединения через порт 3000. В настоящее время я использую Puma (v 3.7) в качестве сервера.
Вот что меня беспокоит: я побежал
rails server
и попытался подключиться к моему EC2 через Chrome через порт 3000. Оказалось, что я смог попасть на обычную страницу "You're on Rails", без проблем, но когда я попытался добраться до любого другие страницы, скажем /articles или /articles/new, Я получил положительный ответ от сервера в консоли:
Started GET "/articles"
Processing by ArticlesController#index as HTML
Rendering articles/index.html.erb within layouts/application
Article Load (0.7ms) SELECT "articles".* FROM "articles"
Rendered articles/index.html.erb within layouts/application (47.3ms)
Completed 200 OK in 3912ms (Views: 3807.5ms | ActiveRecord: 1.5ms)
Но браузер вечно ждет ответа. Я также пытался получить доступ к URL-адресу через curl и также не получил ответа. Буду признателен, если кто-нибудь подскажет, какую глупую ошибку я здесь совершаю.
Спасибо,
Марсио
Привет, спасибо за ваш ответ! Действительно, изначально я планировал использовать Nginx в качестве веб-сервера, но, поскольку у меня было такое странное поведение, я попытался создать минимальное приложение и посмотреть, будет ли по-прежнему появляться ошибка. Я проверил группы безопасности, как вы предложили, и кажется, что порт 3000 широко открыт (я добавил 0.0.0.0/0 и ::/0 в поле CIDR). Как вы думаете, это может быть проблема с брандмауэром?