I built HTTPTests to solve a problem my team kept hitting: nginx -t passes, but we’d still break production with config changes.
It’s a GitHub Action that validates nginx routing, header forwarding, and upstream targets automatically. Tests run in isolated Docker environments on every commit.
Sharing here because this community knows nginx better than anyone. Honest feedback welcome - including “this is unnecessary because X already exists.”
Honestly, we were amazed by how many production incidents this caught before they happened. It’s wild how a tiny config tweak can create completely unexpected behavior in practice.
One tricky challenge was validating reverse-proxy routing—we needed a way to confirm which upstream was actually receiving the request. Our solution was to automatically inject an extra header that the upstream could echo back, letting us verify the routing path definitively.
Another hurdle was supporting projects that generate nginx configs from templates. Those setups often require custom Dockerfile steps or shell scripts to render the final config before testing, which added some complexity to the workflow.