502 error with nginx - but snapshot on a new droplet works?


I set up a 512mb server with Ubuntu 16.04, nginx, MariaDB, php7, memcached etc. and it’s working fine - for about 1 week. After that, my whole site goes down with a 502 error.

So far I found a workaround: If I take a snapshot and set up a new droplet with it…everything works! It’s very strange. I think there is a memory leak or something similar at work.

I looked into the error logs and it seems that php is not working properly:

unix:/run/php/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream```

I'm a beginner so I really don't know what to do. I would be glad if you have any ideas that could solve this problem.


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

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.

Your droplet is probably using too much memory from all of the things you are running. You can confirm this on most OSes by grepping your logs (usually /var/log/syslog or /var/log/messages) for the word “killed” and seeing what the kernel OOM (out of memory) killer says about it.

The reason restoring from a snapshot works is because this reboots the droplet. Rebooting the droplet without restoring it would’ve had the same effect.

If you can get away with not running memcached, that would most likely reduce your memory usage. Also, MariaDB can usually be tuned to use less memory than stock. The other remaining option is to increase the size of your droplet by raising to the 1G plan. Some people may suggest adding swap instead, but it’s pretty illogical to use the hard disk instead of real memory - it is extremely slow and not meant for regular usage.

Since you tagged your question Wordpress, I’m guessing you believed that adding caching to your site would make it faster. As you can see, there is a trade off and in this case it is memory.