Проблемы и решения Ghost
502. Bad Gateway. Неправильный порт в конфиге Nginx
Был кейс, когда после обновления движок поменял порт с 2368 на 2369 в конфиге nginx.
Возможное решение: проверить, по нужному ли порту ghost подключается к nginx.
Смотрим порт, прописанный в конфиге ghost следующей командой (запускаем от ghost-mgr).
ghost ls
Идем в конфиги nginx для сайта и смотрим - что там, при необходимости правим.
cat /etc/nginx/sites-enabled/blog.jpolisher.com-ssl.conf cat /etc/nginx/sites-enabled/blog.jpolisher.com.conf
Перезапускаем nginx и проверяем - ушла ли ошибка.
sudo systemctl restart nginx
Обновление node.js
Иногда при обновлении Ghost мы можем получить сообщение, что наш текущий Node.js уже не поддерживается.
The version of Node.js you are using is not supported
Информацию об обновлении Node.js можно найти на сайте по ссылке: https://ghost.org/docs/faq/node-versions/
Действия следующие
1) Обновляем gpg ключ репозитория
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
2) Создаём репозиторий
NODE_MAJOR=18 # Use a supported version echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
3) Производим обновление Node.js
sudo apt-get update sudo apt-get install nodejs -y
После обновления Node.jp можем обновить Ghost традиционным способом, как описано на странице: обновление Ghost
502. Bad Gateway. Проблема коннекта к БД
Ошибку 502 может также вызывать отсутствие подключения к базе данных. Например, при обновлении Node.js с версии 16 на версию 18 в /var/log/syslog была обнаружена следующая ошибка:
Message: Ghost was able to start, but errored during boot with: connect ECONNREFUSED ::1:3306 Help: Unknown database error
Проблема, как оказалось, заключается в том, что Node.js версии 18 по умолчанию предпочитает использовать протокол IPv6. Но, если MySQL не слушает по IPv6, то и коннекта не будет. Решение заключается в том, чтобы отредактировать файл с конфигурацией БД блога Ghost таким образом, чтобы хост БД был указан везде явно в виде строки IPv4.
Настройки содержается в файле:
/var/www/ghost/config.production.json
Строку localhost нужно заменить на 127.0.0.1
После замены можно перезапустить движок Ghost.
sudo -i -u ghost-mgr ghost restart