Below you'll find some basic Nginx troubleshooting tips. These are a great place to start if you're having issues with your web server and cannot determine the problem, and feel free to add any suggestions or experiences you've had with troubleshooting Nginx.
To set, let's ensure Nginx is actually running. You'll be able to use one of the following commands depending on your distribution:
sudo service nginx status
sudo systemctl status nginx
If Nginx is not running then start it with:
sudo service nginx start
sudo systemctl start nginx
A common problem is running multiple web severs at once. While this is doable, it requires a specific configuration that you or your admin should already be aware of. You can check if you're accidentally running two web servers by using the below commands to see if Apache, which is another common web server, is running:
sudo service apache2 status
sudo systemctl status apache2
If Apache is running and it shouldn't be, then stop it with:
sudo service apache2 stop
sudo systemctl stop apache2
So at this point, Nginx should be running; what's next? Let's confirm it's listening for connections. Older distributions will use netstat
, whereas ss
has become the standard on newer systems. Run the following to see if Nginx is listening for connections:
sudo nestat -plunt
sudo ss -plunt
If Nginx is listening, but you cannot connect, then you may have a firewall problem. Check out the link at the bottom of this page as it covers common firewall mistakes.
If Nginx is up and running and it's listening for connections, then we can move on to the access and error logs. These are typically found in the following locations, though custom log files are possible.
Both of those logs will display helpful information, and you can use either the tail
command or less
to view those files. Assuming those log files show no errors, you have two more good starting points. The first is a configuration test built into Nginx. This can be run with:
sudo nginx -t
And will output the following if everything is OK(I'm using a default Nginx config):
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
The second is to confirm your server's permissions are correct. What's "correct" here really depends on your setup, and there are many online guides that cover this topic, so I recommend you go explore all the possible options. Our Users and Groups guide is a great place to start.
Finally, your greatest resource for troubleshooting Nginx is the documentation provided at Nginx.com. Here are a few links to get you started, and there's certainly more on that site you can dig into.