happytails.ai

nginx configuration checker

Check nginx.conf and its include files for directives in the wrong place, wrong argument counts, removed settings, duplicate default servers, conflicting server names and proxy_pass mistakes without reloading nginx.

Up to 1,000,000 characters, 200 files, 20,000 directives in one file and 100,000 after includes are expanded. Everything runs on your device in a background worker and nothing is uploaded. Downloads: JSON report, CSV findings and SARIF 2.1.0. Paste nginx.conf. Start each include file with ### file: and its path. Up to 1,000,000 characters. Review the settings before running.

Your result

Report a problem or share an idea.

How to use nginx configuration checker
  1. Paste nginx.conf. Add each include file after a line ### file: path, such as ### file: conf.d/site.conf.
  2. Choose whether the first file is the main configuration, an http snippet or a server snippet.
  3. Run the check and review each finding with its file and line.
  4. Download the JSON report, CSV or SARIF file.

Useful next steps

What is checked

Happytails.ai uses its own table of about 230 nginx directives written from the nginx documentation (nginx.org, read on 16 October 2026, nginx 1.28 and 1.29). Each directive is checked for the blocks it may appear in, telling an if block inside server from one inside location, its argument count, on or off values and repeats. include lines are resolved against the pasted files, with * patterns sorted like nginx does.

Conflict rules

The checker reports two default_server entries on one address and port, server_name values used twice on the same address, duplicate exact or prefix locations, proxy_pass with a URI inside a regex location, if or limit_except, listen ssl without a certificate, weak ssl_protocols, the removed ssl directive and add_header blocks that stop inheriting headers from the level above.

Limits

Directives from third-party modules are listed as not covered rather than as errors. nginx itself is not run, so DNS names, certificate files, permissions and variables are not checked. A clean result means none of these rules found a problem.