Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I recently installed Ghost 1.8.4 and Nginx on my AWS ec2 Ubuntu 16.04 server. When I loaded my blog site, it correctly took me to the Ghost home page, from where I logged into Ghost admin. On the admin screen, there was a message to update.

I ran ghost update in putty

The update appeared to be successful, but when I returned to my blog site, I received the following error:

502 Bad Gateway nginx/1.10.3 (Ubuntu)

  1. Does anyone know a probably cause of this error and how to resolve?
  2. I checked some posts, which suggested I should have turned Ghost off before the update. If this is true, is my ghost installation now corrupted?
  3. I went to my ghost directory in /var/www/ghost and tried to run:

    sudo service ghost start

    but it returned:

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

    and trying to stop, returns Unit ghost.service not loaded. Am I running the command from the correct location?

like image 572
Wronski Avatar asked Sep 20 '17 00:09

Wronski


People also ask

Why do I keep getting a 502 Bad gateway?

What does it mean? A 502 bad gateway message indicates that one server got an invalid response from another. In essence, you've connected with some kind of interim device (like an edge server) that should fetch all of the bits you need to load the page.

Does 502 Bad gateway get fixed?

Note: A Gateway might refer to different things in networking and a 502 error is usually not something you can fix, but requires a fix by the web server or the proxies you are trying to get access through.

How do I fix 502?

Clear your browser's cache. Outdated or corrupted files that are being stored by your browser could be causing 502 Bad Gateway issues. Clearing the Cache in Edge. Removing those cached files and trying the page again will solve the problem if this is the cause.


2 Answers

I've experienced 502 issues with ghost behind nginx several times over a few years of running it. I'm not sure if the cause of mine today is the same as yours, but what I observed was that after a restart ghost had changed its port number to one different than what its nginx config was listening on.

I followed these directions from https://web.archive.org/web/20200807095031/https://www.danwalker.com/running-ghost-on-a-5-digital-ocean-vps/ which resolved it for me:

See which port ghost is running on:

sudo netstat -plotn

Check that it matches the proxy_pass in the nginx config file in /etc/nginx/sites-enabled.

In my case the port in the nginx config had incremented to 2369 while the actual node process was running on 2368. Changing the proxy_pass port back to 2368 in my ghost blog's nginx config file resolved the issue for me.

like image 79
Taylor D. Edmiston Avatar answered Oct 18 '22 22:10

Taylor D. Edmiston


I ran into the same problem after upgrading ghost.

Make sure the port number configured in your ghost's config file and the proxy_pass in your ghost site's nginx configuration files match.

Check the port number in /var/www/ghost/config.production.json matches the proxy_pass port in the nginx config files.

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

In my case I had to change 2368 to 2369 in the nginx config files to fix the issue.

Make sure you restart your ghost and nginx after you make the changes.

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

Hope this helps someone.

like image 20
Arun Prasad Avatar answered Oct 18 '22 22:10

Arun Prasad