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)
- 有谁知道这个错误的可能原因以及如何解决?
- 我查看了一些帖子,建议我应该在更新前关闭 Ghost。如果这是真的,我的 ghost 安装现在是否已损坏?
我进入 /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
希望这对某人有所帮助。
我最近在我的 AWS ec2 Ubuntu 16.04 服务器上安装了 Ghost 1.8.4 和 Nginx。当我加载我的博客网站时,它正确地把我带到了 Ghost 主页,我从那里登录到 Ghost 管理员。在管理屏幕上,有一条消息要更新。
我运行ghost update
在putty
更新似乎成功了,但是当我返回我的博客站点时,收到以下错误:
502 Bad Gateway nginx/1.10.3 (Ubuntu)
- 有谁知道这个错误的可能原因以及如何解决?
- 我查看了一些帖子,建议我应该在更新前关闭 Ghost。如果这是真的,我的 ghost 安装现在是否已损坏?
我进入
/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
希望这对某人有所帮助。