проблемы_и_решения_ghost

Проблемы и решения 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
проблемы_и_решения_ghost.txt · Last modified: 2023/11/28 20:31 by jp