| Domain still shows a parked page |
DNS points at the registrar or an old host. |
dig +short example.com A |
Compare the returned IP to the VPS IP before editing anything else. |
| www works but the root domain does not |
One hostname has a record and the other does not. |
dig +short www.example.com A && dig +short example.com A |
Add or correct the missing host only after you know which one fails. |
| HTTP works but HTTPS fails |
Certificate, TLS, redirect, or port 443 configuration is not ready. |
curl -I https://example.com |
Check certificate coverage and Nginx TLS config before reissuing certificates. |
| The Nginx default page appears |
The request is reaching Nginx but not the intended server block or root. |
grep -RInE 'server_name|root|listen' /etc/nginx/sites-enabled /etc/nginx/conf.d 2>/dev/null |
Find the matching server block and verify its root path. |
| Browser shows 403 forbidden |
The server found the path but cannot read or serve it. |
namei -l /srv/www/example.com/current/index.html |
Inspect parent-directory execute bits and file owner before changing permissions. |
| Browser shows 404 after deploy |
The route, root folder, symlink, or generated file path does not match. |
find /srv/www/example.com/current -maxdepth 2 -type f | sort | head -50 |
Prove the file exists in the live release before changing Nginx. |
| Reload says failed |
Nginx config has a syntax or include error. |
sudo nginx -t |
Fix the reported file and line before running reload again. |
| Certificate renewal or issue failed |
DNS, HTTP challenge route, firewall, or certificate name does not line up. |
sudo certbot certificates |
Confirm the existing certificate names and domains before requesting another one. |