# Nginx Config Generator

> One page from jmrp.io, published as markdown. Index: https://jmrp.io/llms.txt

Canonical: https://jmrp.io/tools/nginx-config-generator/
Language: en
Alternate: https://jmrp.io/es/tools/nginx-config-generator/index.md
Updated: 2026-09-03
License: https://jmrp.io/license/
Category: network
Tags: nginx, server, ssl, tls, reverse-proxy, http3

Generate Nginx server blocks with upstream, QUIC/HTTP3, rate limiting, tarpit, OCSP stapling, and modern TLS. Runs client-side.
Build-Date: 2026-09-06

Features:
- Six presets: static, proxy, SPA, PHP, API, hardened
- Modern TLS with QUIC/HTTP3 and OCSP stapling
- Upstream load balancing and reverse proxy
- Rate limiting, tarpit, and security headers
- Generates entirely client-side, nothing sent

Questions answered:

**Is my server configuration sent to any server?**

No. All configuration generation happens entirely in your browser. Domains, IP addresses, and backend paths are never transmitted, so your server architecture stays private.

**Where do I place the generated Nginx config file?**

Copy the output into your Nginx sites directory (commonly /etc/nginx/sites-available/ with a symlink in sites-enabled/, or /etc/nginx/conf.d/). Then run "nginx -t" to validate and "nginx -s reload" to apply it without dropping connections.

**How do I enable QUIC/HTTP3 in the generated config?**

Toggle the QUIC/HTTP3 option in the SSL/TLS section. Note your Nginx build must include the http_v3 module — check with "nginx -V" and look for --with-http_v3_module.

**What does the tarpit feature do?**

The tarpit deliberately sends slow responses to attackers and scanners hitting blocked or exploit paths (like wp-admin or phpMyAdmin), wasting their time and resources instead of returning a quick error.

**Which preset should I start with?**

Pick the preset closest to your use case — Static, Reverse Proxy, SPA, PHP-FPM, API Server, or Hardened — then customize the domain, root path, and SSL certificate paths from there.


---

**Interactive tool** — this page hosts the working application itself, not a description of one.

## About This Tool

Generate production-ready Nginx server block configurations with a visual
builder. Select the features you need and get a complete configuration file
you can copy directly to your server.

### Features

- **6 presets** — Static, Reverse Proxy, SPA, PHP-FPM, API Server, Hardened
- **Upstream blocks** — Named upstream with load balancing (round-robin, least connections, IP hash), keepalive connections, and multiple backend servers
- **Modern SSL/TLS** — QUIC/HTTP3, OCSP stapling, 0-RTT early data, strong cipher suites, session tickets off, HSTS preload
- **Access control** — Rate limiting with burst, block hidden files, block exploit paths (wp-admin, phpMyAdmin), tarpit slow responses
- **Security headers** — X-Frame-Options, XCTO, Referrer-Policy, Permissions-Policy, COOP/CORP/COEP, basic CSP with link to [CSP Policy Builder](https://jmrp.io/tools/csp-builder/)
- **Performance** — Gzip, Brotli, static asset caching, open file cache, proxy buffering
- **Reverse proxy** — WebSocket support, proxy headers, keepalive, buffering options

### How do I use it?

1. Start with a preset that matches your use case
2. Customize domain, root path, and SSL certificate paths
3. Enable QUIC/HTTP3, OCSP stapling, and modern TLS options
4. Configure access control: rate limiting, blocked paths, and tarpit
5. Toggle security headers and performance optimizations
6. Copy the generated configuration and place it in your Nginx sites directory

### Privacy

All configuration generation happens entirely in your browser. No domains, IP
addresses, or backend paths are transmitted to any server. Your server
architecture stays private.

### Linux Command Reference

Common commands for managing Nginx and verifying configurations:

#### How do I verify the configuration?

```bash
nginx -t
```

**Output — Validation Result**

```text
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```

#### How do I reload the configuration without downtime?

```bash
nginx -s reload
```

**Output — Reload Result**

```text
# Nginx reloads configuration without dropping active connections
```

#### How do I check the version and modules?

```bash
nginx -V
```

**Output — Build Details**

```text
nginx version: nginx/1.25.4
built by gcc 12.2.0 (Debian 12.2.0-14)
built with OpenSSL 3.0.11 19 Sep 2023
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-http_v2_module --with-http_v3_module ...
```

### Learn More

These blog posts provide detailed guides on the features available in this
generator:

- [Enabling QUIC/HTTP3 in Nginx](https://jmrp.io/blog/004-enabling-quic-http3-nginx/) — Configure HTTP/3 and QUIC transport protocol
- [Implementing a Tarpit in Nginx](https://jmrp.io/blog/005-implementing-tarpit-nginx/) — Slow down attackers and scanners
- [Implementing CSP in Nginx](https://jmrp.io/blog/003-implementing-content-security-policy-nginx/) — Content Security Policy configuration
- [Secure Nginx with Client Certificates](https://jmrp.io/blog/001-secure-nginx-client-certificates/) — Mutual TLS authentication

