Итак, у меня есть приложение 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"

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

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

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

Что вообще не вызвало никаких изменений.

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

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

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

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

1
Ian Brooks 19 Сен 2018 в 19:20

2 ответа

Лучший ответ

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

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

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

Спасибо всем за комментарии и попытки помочь, очень признательны!

0
Ian Brooks 5 Окт 2018 в 15:17

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

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

0
Banjo Obayomi 19 Сен 2018 в 19:04