
Nginx as a Reverse Proxy: The Config, and What Breaks
The six lines that proxy, the four headers most examples omit, and the three failures a reverse proxy actually produces — 502, 504 and the 499 nobody receives.
Neeraj Jha
Topic
Every container, cluster and pipeline eventually resolves to a Linux process holding a file descriptor. When something behaves inexplicably a layer up, the answer is usually here: a permission, a full disk, a port already bound, a process that ignored a signal.
The same applies to networking. Reverse proxies, timeouts and certificates are far easier to reason about once you have seen how a request actually traverses them.
Existing pages in an order where each step answers a question the previous one raised, with an exercise at the end.
Step-by-step, with copy-paste commands and an assistant that answers questions about the guide you are reading.
Named errors and symptoms, each with its causes, a command that confirms each one, and the fix.
localhost used instead of the other container's name, no shared network, or the app listening only on its own loopback. Each has a one-line check below.openssl s_client tells them apart in one command.ssh -v on your side and the server's auth log on the other can.Pairs of things that get mistaken for one another, and the problem the mix-up causes.
-p is what actually makes a port reachable through your machine's own addresses, such as localhost, and from other machines. Neither one changes what address your application binds to inside the container.free is memory nothing is using at all; available is the kernel's estimate of how much a new program could get without swapping, which counts the page cache it can give back. On a Linux server free can be small even when nothing is wrong, and available is the number to watch — and even available is not pressure. Pressure is the kernel having to work for memory: reclaiming, swapping in and out, tasks stalling.The design decision behind the behaviour, and what it costs you.
A failure followed step by step: what each part of the system does, and what you can change.
Run in your browser; nothing you paste is sent anywhere.
Ordered by how much they are read.

The six lines that proxy, the four headers most examples omit, and the three failures a reverse proxy actually produces — 502, 504 and the 499 nobody receives.
Neeraj Jha

A practical reference of essential Linux commands for DevOps — file operations, text processing, networking, process management, and more.
Neeraj Jha
Updated

Deep dive into Kubernetes networking — ClusterIP, NodePort, LoadBalancer, Ingress controllers, CoreDNS, and Network Policies explained with examples.
Neeraj Jha
Updated

The same ten-item checklist, ordered by the threat each item actually closes — and honest about which three matter most and what none of them protect you from.
Neeraj Jha
Updated

Learn essential Bash scripting for DevOps — variables, conditionals, loops, functions, error handling, cron jobs, and practical one-liners.
Neeraj Jha
Updated

Get started with Ansible for server automation — inventory, playbooks, roles, common modules, and best practices for DevOps workflows.
Neeraj Jha

Why pip install now fails with externally-managed-environment on Ubuntu 24.04, Debian 12 and Homebrew, and the three fixes that work: a venv, pipx, or apt. Plus why it passes in GitHub Actions and fails in docker build.
Neeraj Jha

Ingress NGINX was retired in March 2026, and moving the same rules to Gateway API can break routes that worked for years. Five behaviours from the Kubernetes project's own write-up, in plain language, with a check to run before you switch.
Neeraj Jha

What rebooting, stopping, hibernating and terminating an EC2 instance each keep and lose, from AWS's own comparison. Four actions that sound similar and are not, including the public IP that changes and the disk that vanishes.
Neeraj Jha

Ubuntu 26.04 mounts /tmp as a RAM disk with a per-user quota, so large builds fail with disk quota exceeded on the ubuntu-26.04 runner. How to check your job and the two-line fix.
Neeraj Jha
Real questions from the community, with an accepted answer.