Question

How set up a maintenance page when droplet is off, restarting or not responding to a specific port?

Consider the following: I have a Droplet currently working and configured, with a domain pointing to it, serving something from some port (for e.g. nginx serving a website on 80/443, or a mySQL on 3306).

I’d like to configure for the domain a 503 (Service Unavailable) page when Droplet is currently Turned off, is in a process (for e.g. restarting, re-scaling) or when it’s not serving something on said port (for e.g, Droplet is on but mysql or nginx daemons are off because either crashed or I’m currently giving maintenance).

How can I serve said HTTP response on each of these cases? This is a lot better than simply having the domain give dns/timeout error.

Thank you.

This question from 2014 asks the same thing, but the response given totally hit the mark, like the person didn’t even try to read the question and just blindly answered the inner questions, which were suppositions/thoughts.


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

Hi there @RaphaelDDL,

As the Droplet would be down, you would need another service in front of the actual Droplet that would be able to serve a maintenance page for example.

There are a couple of things that I could suggest:

  • You could use HAProxy, that way you would point your Domain name to the HAProxy server and it would proxy the traffic to your Droplet, if the Droplet goes down, HAProxy would not be able to connect anymore and it would throw a 503 error. You would be able to change that error with a more meaningful message, you can take a look at this answer here on how to do that:

https://www.digitalocean.com/community/questions/haproxy-change-503-page-with-a-custom

If you decide to go with that option, you could take a look at this introduction tutorial here:

https://www.digitalocean.com/community/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts

If you are not familiar with HAProxy, you could achieve the same setup with Nginx as well.

  • Another option would be to use a CDN like Cloudflare, there is a page that Cloudflare shows when the backend Droplet is down and, on the Pro plan and above, is customizable:

http://cloudflarepreview.com/preview-cpage?act=preview&target=cf-error%3A500s

Hope that this helps! Let me know if you have any questions. Regards, Bobby

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.