A server that responds on localhost can still be unreachable from the internet. Before changing instance size, test each layer separately.
1. Confirm the application is listening
Run these commands on your own Linux server:
ss -lntp
curl -I http://127.0.0.1:8080
Replace 8080 with your application's port. A process bound only to 127.0.0.1 accepts local connections. When using Nginx as a reverse proxy, this is often intentional. Keep the backend private and expose the proxy's HTTP/HTTPS ports.
2. Check the host firewall and cloud security group
These are separate controls. Inspect the operating-system firewall and the inbound rules attached to the instance. Open only the intended public service ports. Restrict SSH to trusted source addresses where practical. Avoid opening every port to diagnose a single endpoint.
3. Test the reverse proxy
Check configuration syntax before reloading Nginx:
sudo nginx -t
curl -I http://127.0.0.1
If the backend responds but Nginx returns 502, inspect the upstream address, port, application status and proxy error log. If the wrong site appears, check the server_name and matching virtual host.
4. Verify DNS and HTTPS separately
An old A record or unexpected AAAA record may send visitors elsewhere. Compare the resolved addresses with the intended endpoint. A valid certificate must cover the requested hostname. Test from an external network as well as from the instance.
5. Record a reproducible result
Keep a small checklist with the hostname, expected port, HTTP status, test time and network used. Redact cookies, authorization headers and private IP details before sharing logs. This makes intermittent failures much easier to investigate.
About the author
Yunzhihui Cloud publishes cloud-server deployment and operations guides. Our cloud-server consulting page describes how to prepare configuration requirements. For service enquiries, contact Telegram @ak6793.
Top comments (0)