Ghost 1.8.7更新后出现“502 Bad Gateway”是什么原因

What is the cause of the "502 Bad Gateway" after Ghost 1.8.7 update

我最近在我的 AWS ec2 Ubuntu 16.04 服务器上安装了 Ghost 1.8.4 和 Nginx。当我加载我的博客网站时,它正确地把我带到了 Ghost 主页,我从那里登录到 Ghost 管理员。在管理屏幕上,有一条消息要更新。

我运行ghost update在putty

更新似乎成功了,但是当我返回我的博客站点时,收到以下错误:

502 Bad Gateway nginx/1.10.3 (Ubuntu)

  1. 有谁知道这个错误的可能原因以及如何解决?
  2. 我查看了一些帖子,建议我应该在更新前关闭 Ghost。如果这是真的,我的 ghost 安装现在是否已损坏?
  3. 我进入 /var/www/ghost 中的 ghost 目录并尝试 运行:

    sudo service ghost start

    但它返回:

    Failed to start ghost.service: Unit ghost.service not found

    并试图停止,returns Unit ghost.service not loaded。我 运行 从正确的位置执行命令了吗?

当我发布这个问题时,显然是由于 Ghost CLI 中的一个错误,ghost 团队正在修复它。

他们在我的服务器上向 运行 提供了这些说明:

systemctl stop ghost_www-blogwebsite-com
ghost update --force

结果输出:

stopping Ghost [skipped]
Removing old Ghost versions [skipped]

这解决了问题并更新到正确的版本。

在 运行 的几年里,我已经多次遇到 nginx 背后的 ghost 502 问题。我不确定我今天的原因是否与你的相同,但我观察到的是,在重新启动后,ghost 将其端口号更改为与其 nginx 配置正在侦听的端口号不同的端口号。

我按照 https://web.archive.org/web/20200807095031/https://www.danwalker.com/running-ghost-on-a-5-digital-ocean-vps/ 的这些指示为我解决了这个问题:

查看 运行 上哪个端口 ghost:

sudo netstat -plotn

检查它是否与 /etc/nginx/sites-enabled 中 nginx 配置文件中的 proxy_pass 匹配。

在我的例子中,nginx 配置中的端口增加到 2369,而实际节点进程在 2368 上是 运行。在我的鬼博客的 nginx 配置文件中将 proxy_pass 端口改回 2368为我解决了这个问题。

我升级ghost后运行遇到同样的问题

确保端口号在你的ghost配置文件中配置,proxy_pass在你的ghost站点的nginx配置文件中匹配。

检查端口号 /var/www/ghost/config.production.json 匹配 nginx 配置文件中的 proxy_pass 端口。

/var/www/ghost/system/files/<yourDomainName>.<extension>.conf
/var/www/ghost/system/files/<yourDomainName>.<extension>-ssl.conf

在我的例子中,我不得不在 nginx 配置文件中将 2368 更改为 2369 以解决问题。

确保在进行更改后重新启动 ghost 和 nginx

# restart your ghost site
cd /var/www/ghost/
ghost restart 
# restart nginx
sudo systemctl restart nginx

希望这对某人有所帮助。