This happens when Nginx can't reach your application server. Check if your backend process is running - for PHP-FPM run systemctl status php-fpm, for Node.js verify your app didn't crash. Look at upstream configuration in your Nginx config file and make sure the socket path or port matches what your application actually uses. If you recently restarted services, give PHP-FPM or your app server a few seconds to fully initialize.
Your location blocks might block static files. Add a specific location for assets like location ~* \.(css|js|png|jpg)$ with proper root path. Check browser console for actual error codes - 403 means permission issues, 404 means wrong path. Clear browser cache since old references might persist.
Firewall probably blocks port 80 or 443. On Ubuntu/Debian run ufw allow 'Nginx Full', on CentOS use firewall-cmd --permanent --add-service=http and --add-service=https. Check if Nginx actually listens on expected IP - run netstat -tlnp | grep nginx. If behind a router, verify port forwarding rules point to your server.
Always test configuration before reloading with nginx -t command. It catches syntax errors that prevent loading new settings. Use reload instead of restart when possible - it applies changes without dropping connections. Check you're editing the right file - some systems have sites-available and sites-enabled directories, changes only work in enabled configs.