based on user reports and queries over the last 24 hours
Nginx outage statistics
- Documentation at https://nginx.org/en/docs;
- Community mailing list at https://mailman.nginx.org/mailman/listinfo/nginx;
- Commercial support at https://www.nginx.com/support;
- Forum at https://forum.nginx.org;
- GitHub issues at https://github.com/nginx/nginx (for bugs);
- IRC channel #nginx on Libera.Chat.
- Official Website - https://nginx.org;
- Documentation - https://nginx.org/en/docs;
- Blog - https://www.nginx.com/blog;
- GitHub - https://github.com/nginx/nginx;
- X (Twitter) - https://twitter.com/nginx;
- LinkedIn - https://www.linkedin.com/company/nginx;
- Download - https://nginx.org/en/download.html;
- Security Advisories - https://nginx.org/en/security_advisories.html;
- Commercial - https://www.nginx.com;
- Community - https://forum.nginx.org.
Service disruptions manifest as Nginx not starting, "502 Bad Gateway" errors, "503 Service Unavailable" messages, or complete web server failure.
- Check Nginx service status: `systemctl status nginx`;
- Restart Nginx: `sudo systemctl restart nginx`;
- Verify configuration syntax: `nginx -t`;
- Check error logs: `/var/log/nginx/error.log`;
- Verify port 80/443 not blocked;
- Check system resources available;
- Review process list: `ps aux | grep nginx`;
- Verify file permissions correct;
- Check disk space sufficient;
- Monitor server resource usage.
Configuration issues include "nginx: configuration file test failed" errors, syntax errors, directives invalid, or reload failing.
- Test config: `sudo nginx -t`;
- Check syntax in config files;
- Verify bracket/semicolon placement;
- Review recent configuration changes;
- Restore backup config if available;
- Check directive spelling correct;
- Verify paths exist and accessible;
- Review nginx.conf includes;
- Check file permissions readable;
- Validate SSL certificate paths.
Upstream connection problems include "502 Bad Gateway" errors, backend timeouts, PHP-FPM not responding, or proxy failures.
- Check upstream service running (PHP-FPM/app);
- Verify backend listening on correct port;
- Check upstream configuration correct;
- Increase proxy timeouts in config;
- Review upstream error logs;
- Verify socket file exists/permissions;
- Check firewall allows backend connection;
- Restart upstream service;
- Verify upstream not overloaded;
- Test backend connectivity directly.
Certificate problems include SSL handshake failures, "certificate expired" warnings, mixed content errors, or HTTPS not loading.
- Check certificate expiration date;
- Verify certificate paths in config;
- Renew Let's Encrypt certificate;
- Check certificate chain complete;
- Verify private key matches certificate;
- Test SSL: `openssl s_client -connect domain:443`;
- Check certificate permissions (readable);
- Verify SSL directives configured correctly;
- Review cipher suite compatibility;
- Check certificate trusted by browsers.
Performance issues include slow page loading, high CPU usage, memory exhaustion, connection timeouts, or request queuing.
- Check server resource usage: `top/htop`;
- Optimize worker_processes setting;
- Increase worker_connections limit;
- Enable gzip compression;
- Implement caching strategies;
- Review access logs for traffic spikes;
- Check backend application performance;
- Optimize buffer sizes;
- Limit request rate with limit_req;
- Monitor concurrent connections.
File access problems include "404 Not Found" errors, static files missing, root directory wrong, or location blocks misconfigured.
- Verify root directory path correct;
- Check file exists at specified path;
- Review location block configuration;
- Check file permissions readable;
- Verify index directive configured;
- Check alias vs root directive usage;
- Review try_files directive;
- Check case sensitivity in paths;
- Verify symbolic links working;
- Test with absolute paths.
Access restriction issues include "403 Forbidden" errors, IP blocking, basic auth failing, or deny rules misconfigured.
- Check allow/deny directives;
- Verify IP whitelist/blacklist correct;
- Review basic auth configuration;
- Check .htpasswd file exists/permissions;
- Verify client IP not blocked;
- Review access log for blocked IPs;
- Check file/directory permissions (755/644);
- Verify auth_basic directives;
- Test with allowed IP address;
- Review security module rules.
Proxy configuration problems include proxy_pass failing, upstream servers unreachable, load balancing broken, or header issues.
- Verify proxy_pass URL correct;
- Check upstream server reachable;
- Test backend connectivity: `curl backend:port`;
- Review upstream block configuration;
- Check proxy headers forwarded correctly;
- Verify load balancing method suitable;
- Monitor upstream server health;
- Check proxy timeouts configured;
- Review proxy buffer settings;
- Verify backend accepts proxied requests.
Logging problems include logs not writing, access.log empty, error.log missing, log rotation failing, or excessive log size.
- Check log file paths in config;
- Verify log directory permissions writable;
- Check disk space not full;
- Review log format directives;
- Verify logrotate configured correctly;
- Check access_log/error_log directives;
- Monitor log file sizes;
- Test logging: `tail -f /var/log/nginx/access.log`;
- Verify syslog configuration if used;
- Check log level severity set.
Virtual hosting issues include wrong site loading, server_name not matching, default site serving, or subdomain routing broken.
- Check server_name directive correct;
- Verify DNS resolves to server IP;
- Review default_server configuration;
- Check sites-enabled symlinks exist;
- Verify listen directives unique/correct;
- Test with Host header: `curl -H "Host: domain.com"`;
- Check server block priority;
- Review include directives loading configs;
- Verify no conflicting configurations;
- Reload Nginx after changes.
Module functionality issues include third-party modules failing, dynamic modules not loading, missing module features, or compilation errors.
- Check module compiled/installed correctly;
- Verify load_module directive in config;
- Check module compatibility with version;
- Review module configuration syntax;
- Verify shared library paths correct;
- Check Nginx compiled with module support;
- Review module error messages;
- Test with module disabled;
- Verify dependencies installed;
- Recompile Nginx with required modules.
Caching problems include cache not serving content, stale cache, cache keys wrong, or purge failing.
- Verify proxy_cache_path configured;
- Check cache directory exists/writable;
- Review cache key configuration;
- Check cache validity settings;
- Monitor cache hit/miss ratio;
- Verify Cache-Control headers;
- Test cache purge functionality;
- Check cache size limits;
- Review bypass conditions;
- Clear cache manually if needed.
Protocol support problems include WebSocket connections failing, HTTP/2 not working, upgrade header issues, or connection downgraded.
- Enable HTTP/2: `listen 443 ssl http2`;
- Configure WebSocket upgrade headers;
- Check proxy_http_version 1.1;
- Verify Connection upgrade header;
- Check SSL required for HTTP/2;
- Review protocol compatibility;
- Test WebSocket connection separately;
- Verify browser supports HTTP/2;
- Check upstream supports WebSocket;
- Monitor protocol usage in logs.
Security issues include DDoS attacks, rate limiting triggered, malicious requests, brute force attempts, or bot traffic.
- Implement rate limiting: limit_req_zone;
- Enable fail2ban for Nginx;
- Configure connection limits;
- Block malicious IPs/user-agents;
- Implement WAF rules (ModSecurity);
- Use geo-blocking if applicable;
- Monitor access logs for patterns;
- Enable request buffering limits;
- Implement CAPTCHA for suspected bots;
- Review security headers configured.
Rewrite/redirect problems include infinite redirect loops, rewrite rules not matching, redirects to wrong URL, or regex errors.
- Test rewrite rules carefully;
- Check redirect loops (301/302);
- Verify regex patterns correct;
- Use return directive for simple redirects;
- Check rewrite flags (last/break/redirect);
- Test with curl to see redirects;
- Review rewrite log for debugging;
- Verify location block order;
- Check if/rewrite directive conflicts;
- Test regex at https://regex101.com.
Nginx
Your message will be published in about
5 minutes
Service administration will see your message