Servers & DevOps
Web servers, containers, DNS, certificates and databases: errors from configuration to deployment.
- Nginx2 guidesNginx errors such as 502 Bad Gateway, 504 timeouts and configuration test failures.
- Apache2 guidesApache HTTP Server errors, module problems and .htaccess mistakes.
- HTTP errors2 guidesWhat HTTP status errors mean and how to find their cause, whatever server or proxy returns them.
- Docker1 guideDocker Engine and Docker Desktop errors: daemon connection, permissions, networking and image builds.
- LinuxsoonLinux server problems: services, disk space, permissions and package managers.
- Windows Server1 guideWindows Server roles, Remote Desktop, IIS and Active Directory errors.
- DNSsoonDNS records, propagation and resolver errors on the server and domain side.
- SSL/TLS1 guideCertificate errors, expired or mismatched certificates, and TLS handshake failures.
- SSHsoonSSH connection refused, permission denied (publickey) and host key errors.
- Databases1 guideMySQL, PostgreSQL and SQL Server connection and startup errors.
- Configuration & deploymentsoonErrors from build pipelines, environment configuration and application deployment.
Recently published in Servers & DevOps
- SSL error: how to find the cause and fix itAn "SSL error" means your browser or tool could not validate the server's certificate, or the secure handshake did not finish. As a visitor, check the device clock, try another network and update your system. If you run the site, the usual culprits are a missing intermediate certificate, an expired certificate, or a name that the certificate does not cover.
- PostgreSQL error codes (SQLSTATE): what they mean and how to fix the common onesEvery PostgreSQL error carries a 5-character SQLSTATE code. The first two characters give the class (for example 23 for constraint violations) and the last three give the exact condition. Find the code, look it up in the official appendix, then apply the fix for that condition: retry for 40001 and usually 40P01, correct the data or query for class 23 and 42 errors, and address limits or connectivity for classes 53 and 08.
- Apache error log: where it is, how to read it and common entriesThe Apache error log is the first place to look when httpd won't start or returns 403, 404 or 500 with no obvious reason. Find its path with the `ErrorLog` directive, watch it with `tail -f` while you reproduce the problem, and search by the `AHnnnnn` code in each entry. If the log looks empty, the usual reasons are a `LogLevel` that hides the message, a per-virtual-host log, or a log that was not reopened after rotation.
- "Cannot connect to the Docker daemon": how to fix itThe `docker` command is only a client, and this error means it got no answer from the Docker daemon (`dockerd`). Most often the daemon is stopped, so `sudo systemctl start docker` fixes it. If not, the daemon failed to start because of its configuration, or the client is pointed at the wrong place.
- Windows Server error 1053: the service did not respond in a timely fashionError 1053 is the Service Control Manager telling you a service did not respond to a start or control request in time. Check Event Viewer for the service's own error first, and only then consider raising the wait with the ServicesPipeTimeout registry value.
- Nginx 504 Gateway Timeout: causes and how to fix itNginx shows 504 Gateway Timeout when the backend it forwards requests to (PHP-FPM, Node, gunicorn and so on) does not send a response within the configured timeout, 60 seconds by default. Read the error log, test the backend directly, then fix the slow application or raise the timeout for the slow location only.
- HTTP 429 Too Many Requests: what it means and how to fix itHTTP 429 means the server is rate limiting you: too many requests arrived in a short time. Usually the fix is to wait (at least as long as the `Retry-After` header says) and then send fewer requests. If you run the server, check that your limits aren't too tight.
- Apache 500 Internal Server Error: how to find the cause and fix itA 500 from Apache is a generic "something went wrong" status, so the error page itself does not tell you the cause. The reason is written in the Apache error log. Read it first, then check the file or directive it names, such as a `.htaccess` file or a failing script.
- HTTP error 503 Service Unavailable: what it means and how to fix itHTTP 503 means the server is temporarily unable to handle your request, usually because of maintenance or overload. If you are a visitor, wait and try again later, because the problem is on the server side. If you run the site, check for a stopped IIS application pool or nginx rate limiting and a failing backend.
- Nginx 502 Bad Gateway: causes and how to fix itA 502 from Nginx means Nginx itself is working but the application it forwards requests to (Node, PHP-FPM, Gunicorn, a container) did not give it a valid response. The Nginx error log names the exact reason; most often the backend is not running, listens on a different address, or Nginx is not allowed to reach its socket.