Приложение Rails на AWS Elastic Beanstalk: плохой конфиг nginx - PullRequest
0 голосов
/ 19 сентября 2018

Итак, у меня есть приложение rails, которое я создал и развернул через AWS Elastic Beanstalk несколько месяцев назад.Проект был приостановлен, поэтому я завершил работу среды, ожидая возможности повторного развертывания, когда мы вернемся к этому проекту.

Несмотря на то, что мое приложение все еще нормально работает в локальной среде разработчика, я не могу его получитьразвернуть.Ошибка от моего eb-activty.log:

PG::ConnectionBad: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

База данных является автономным экземпляром AWS RDS, к которому я могу успешно проверить соединение, поэтому я знаю, что он работает.Я добавил необходимые переменные окружения и настроил свой database.yml соответственно.Чтобы было понятно, это приложение, которое раньше работало.Я не вносил никаких изменений между моментом завершения работы среды и повторным развертыванием.

Основная проблема, по-видимому, заключается в том, что nginx не настроен должным образом при попытке получить доступ к серверу.возвращает:

502 Bad Gateway
nginx/1.12.1

и когда я проверяю nginx error.log, он заполнен ошибками, подобными этому:

2018/09/19 14:12:35 [crit] 3069#0: *653 connect() to unix:///var/run/puma/my_app.sock failed (2: No such file or directory) while connecting to upstream, client: 172.31.47.147, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:///var/run/puma/my_app.sock:/", host: "172.31.47.147"

Естественно, я погуглил свою ошибку и обнаружил этот стекопотокpost.

Я пытался добавить эти предложенные строки из ответа с самым высоким рейтингом к моему puma.rb

bind "unix:///var/run/puma/my_app.sock"
pidfile "/var/run/puma/my_app.sock"

, который не вызвал никаких изменений.

Я обязательно попробовал другие предложения, включая прямой просмотр файла конфигурации nginx.Я обнаружил, что нет никаких upstream, настроенных в конфигурации.Насколько я могу судить, аспект nginx конвейера развертывания автоматизирован Elastic Beanstalk, поэтому очевидно, что что-то еще, что я установил, должно быть неверным.

Я обнаружил, что ни при каких обстоятельствах я не могу заставить приложение развернуться, используя eb deploy. Я могу вносить изменения только путем создания новой среды каждый раз.Я воссоздал приложение бесчисленное количество времени, экспериментируя с различными настройками, версиями гемов и пакетов, разными версиями ruby ​​... и т. Д.В общем, я все еще не могу повлиять на изменение ошибки, я даже не могу получить новую ошибку!точно так же PG:ConnectionBad или 502 bad gateway в зависимости от того, смотрю ли я с консоли или браузера.

Из-за моего поиска в Google у меня сложилось впечатление, что это связано с пумой в некотором отношении, но пума для меня является чем-то вроде черного ящика.

Я чувствую себя довольно растеряннымЯ был бы очень признателен за любые рекомендации, которыми вы бы хотели поделиться.Не стесняйтесь спрашивать дополнительную информацию из любого журнала или файла, я рад предоставить более подробную информацию.Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Так что это не будет очень полезным ответом, так как я никогда не решал проблему.Я не хотел просто оставлять этот поток зависшим.

Я закончил тем, что просто создал новую среду рельсов, заново добавил все драгоценные камни и портировал мои контроллеры / представления / модели / маршруты.Как только я это сделал, я смог развернуть без проблем.

Я могу подтвердить, что проблема не в группах безопасности или самой базе данных.Новое приложение rails смогло получить доступ к экземпляру RDS без проблем.

Спасибо всем за ваши комментарии и помощь, это очень ценится!

0 голосов
/ 19 сентября 2018

Может ли это быть группа безопасности RDS, настроена ли она на доступ к вашему elb?

Вы также можете попробовать клонировать базу данных, чтобы убедиться, что она не является странной проблемой базы данных со старой, и попробовать подключиться к ней..

...