502 Bad Gateway After Updating Ghost

November 24, 2015 864 views
Ghost Nginx Ubuntu

This morning, I upgraded my Ghost blog from 0.3.3 (the original droplet version) to 0.7.1.

  • I stopped the Ghost service with sudo service nginx stop.
  • I downloaded the ghost-latest.zip file.
  • I removed the existing core folder and replaced it with the one from the compressed file.
  • I also updated the index.js, Gruntfile.js, package.json, and the Markdown files. I also added the npm-shrinkwrap.json file.
  • I deleted the node-modules folder with sudo rm -r node_modules, then ran sudo npm cache clear before running sudo npm install --production.
  • I also verified that all files in destination folder were owned by the ghost user, as was the case prior.
  • After a few hiccups, I was able to successfully start Ghost from the command line using npm start --production. My database was migrated from version 000 to version 004, and I got the message Ghost is running in production... in the console.
  • I did not change the config.js in the Ghost main folder or the nginx configuration file. I know that nginx is still functioning, because I have multiple sites referenced in the configuration file, and they are all still running.

When I try to access the Ghost blog, I get a 502 Bad Gateway error. I've restarted both the nginx and ghost services and I still get the same error. Can anyone help?

1 comment
  • I updated my blog from 0.7.1 to 0.7.2 and I'm stuck with the same error when trying to access the droplet via IP or by the reference domain name.

    Any help will be greatly appreciated. Thanks in advance.

1 Answer


In many cases, running sudo npm start --production directly will result in an error. Ideally, you should run sudo service ghost restart instead (which should run exec /usr/local/bin/npm start --production when called and start is passed as an argument).

Have another answer? Share your knowledge.