📖 Guide

Nginx Cheat Sheet — Complete Configuration Reference

Complete Nginx configuration reference covering server blocks, locations, proxying, SSL, load balancing, and caching.

121 commands across 12 categories

Server Blocks

CommandDescription
listen 80;
Listen on port 80 (HTTP)
listen 443 ssl;
Listen on port 443 (HTTPS)
listen [::]:80;
Listen on port 80 with IPv6
listen 80 default_server;
Set as default server for this port
server_name example.com;
Match requests for this domain
server_name example.com www.example.com;
Match multiple domains
server_name *.example.com;
Match all subdomains (wildcard)
server_name ~^(?<subdomain>.+)\.example\.com$;
Regex server name with capture
server_name "";
Match requests with no Host header
root /var/www/html;
Set document root for the server
index index.html index.htm;
Set default index files

Locations

CommandDescription
location / { ... }
Match all requests (prefix match)
location /api { ... }
Match requests starting with /api
location = /health { ... }
Exact match — only /health, not /health/check
location ~* \.(jpg|png|gif)$ { ... }
Case-insensitive regex match for image files
location ~ \.php$ { ... }
Case-sensitive regex match for PHP files
location ^~ /static/ { ... }
Prefix match — skip regex matching
try_files $uri $uri/ /index.html;
Try file, then directory, then fallback (SPA)
try_files $uri $uri/ =404;
Return 404 if file not found
root /var/www/site;
Set document root for this location
alias /var/www/files/;
Map location to a different directory path
autoindex on;
Enable directory listing

Reverse Proxy

CommandDescription
proxy_pass http://localhost:3000;
Proxy requests to backend server
proxy_pass http://backend/;
Proxy to upstream group (load balanced)
proxy_set_header Host $host;
Forward original Host header to backend
proxy_set_header X-Real-IP $remote_addr;
Forward client's real IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Forward chain of proxy IPs
proxy_set_header X-Forwarded-Proto $scheme;
Forward protocol (http/https)
proxy_http_version 1.1;
Use HTTP/1.1 for keepalive connections
proxy_set_header Upgrade $http_upgrade;
Support WebSocket upgrade
proxy_set_header Connection "upgrade";
Support WebSocket connection
proxy_connect_timeout 60s;
Timeout for establishing connection to backend
proxy_read_timeout 60s;
Timeout for reading response from backend
proxy_send_timeout 60s;
Timeout for sending request to backend
proxy_buffering off;
Disable response buffering (streaming)
proxy_redirect off;
Don't rewrite Location headers from backend

Load Balancing

CommandDescription
upstream backend { server 10.0.0.1:8080; server 10.0.0.2:8080; }
Define upstream group (round-robin by default)
upstream backend { least_conn; server ...; }
Route to server with fewest active connections
upstream backend { ip_hash; server ...; }
Sticky sessions by client IP
upstream backend { hash $request_uri; server ...; }
Hash-based routing by URI
server 10.0.0.1:8080 weight=3;
Weighted load balancing (3x more traffic)
server 10.0.0.2:8080 backup;
Backup server — used only when others are down
server 10.0.0.3:8080 down;
Mark server as permanently offline
server 10.0.0.1:8080 max_fails=3 fail_timeout=30s;
Health check: mark unhealthy after 3 failures
keepalive 32;
Keep 32 idle connections to upstream servers

SSL / TLS

CommandDescription
ssl_certificate /etc/ssl/cert.pem;
Path to SSL certificate
ssl_certificate_key /etc/ssl/key.pem;
Path to SSL private key
ssl_protocols TLSv1.2 TLSv1.3;
Allow only TLS 1.2 and 1.3
ssl_ciphers HIGH:!aNULL:!MD5;
Set allowed cipher suites
ssl_prefer_server_ciphers on;
Prefer server's cipher order
ssl_session_cache shared:SSL:10m;
Enable SSL session caching (10MB)
ssl_session_timeout 1d;
SSL session timeout (24 hours)
ssl_stapling on;
Enable OCSP stapling
ssl_stapling_verify on;
Verify OCSP stapling responses
ssl_trusted_certificate /etc/ssl/chain.pem;
CA certificate chain for OCSP
return 301 https://$host$request_uri;
e.g. server { listen 80; return 301 https://$host$request_uri; }
Redirect HTTP to HTTPS
add_header Strict-Transport-Security "max-age=31536000" always;
Enable HSTS (1 year)

Headers & Security

CommandDescription
add_header X-Frame-Options DENY;
Prevent clickjacking (no iframes)
add_header X-Content-Type-Options nosniff;
Prevent MIME type sniffing
add_header X-XSS-Protection "1; mode=block";
Enable XSS filter
add_header Referrer-Policy strict-origin-when-cross-origin;
Control referrer information
add_header Content-Security-Policy "default-src 'self'";
Content Security Policy header
add_header Permissions-Policy "camera=(), microphone=()";
Restrict browser features
proxy_hide_header X-Powered-By;
Remove header from proxied response
server_tokens off;
Hide Nginx version from error pages and headers
add_header Access-Control-Allow-Origin *;
Allow CORS from all origins
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
Specify allowed CORS methods

Gzip Compression

CommandDescription
gzip on;
Enable gzip compression
gzip_vary on;
Add Vary: Accept-Encoding header
gzip_min_length 1024;
Only compress responses larger than 1KB
gzip_comp_level 5;
Compression level (1-9, 5 is good balance)
gzip_types text/plain text/css application/json application/javascript;
MIME types to compress
gzip_proxied any;
Compress proxied responses too
gzip_disable "msie6";
Disable gzip for old IE browsers

Logging

CommandDescription
access_log /var/log/nginx/access.log;
Set access log path
error_log /var/log/nginx/error.log warn;
Set error log path and level
access_log off;
Disable access logging for this context
log_format main '$remote_addr - $request';
Define custom log format
access_log /var/log/nginx/api.log main;
Use custom format for access log
error_log /var/log/nginx/error.log debug;
Enable debug-level logging
log_format json escape=json '{"time":"$time_iso8601"}';
JSON-formatted log output

Rewrites & Redirects

CommandDescription
return 301 https://example.com$request_uri;
Permanent redirect (301)
return 302 /temporary-page;
Temporary redirect (302)
return 403;
Return forbidden status
return 200 'OK';
Return a plain text response
rewrite ^/old-page$ /new-page permanent;
Rewrite URL with 301 redirect
rewrite ^/blog/(.*)$ /articles/$1 last;
Rewrite with regex capture group
rewrite ^/api/v1/(.*)$ /api/v2/$1 break;
Internal rewrite (don't re-process)
if ($host = 'www.example.com') { return 301 https://example.com$request_uri; }
Redirect www to non-www
error_page 404 /404.html;
Custom 404 error page
error_page 500 502 503 504 /50x.html;
Custom server error page

Rate Limiting

CommandDescription
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
Define rate limit zone (10 req/sec per IP)
limit_req zone=api;
Apply rate limit to location
limit_req zone=api burst=20;
Allow burst of 20 extra requests
limit_req zone=api burst=20 nodelay;
Burst without delaying requests
limit_req_status 429;
Return 429 Too Many Requests
limit_conn_zone $binary_remote_addr zone=addr:10m;
Define connection limit zone
limit_conn addr 10;
Max 10 concurrent connections per IP
limit_rate 100k;
Limit response bandwidth to 100KB/s

Caching

CommandDescription
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m max_size=1g;
Define cache storage (10MB keys, 1GB disk)
proxy_cache cache;
Enable caching in this location
proxy_cache_valid 200 1h;
Cache 200 responses for 1 hour
proxy_cache_valid 404 1m;
Cache 404 responses for 1 minute
proxy_cache_use_stale error timeout;
Serve stale cache on backend errors
proxy_cache_bypass $http_cache_control;
Bypass cache when Cache-Control header present
add_header X-Cache-Status $upstream_cache_status;
Add cache hit/miss header for debugging
expires 30d;
Set browser cache expiry to 30 days
expires -1;
Disable browser caching
add_header Cache-Control "public, no-transform";
Set Cache-Control header

Performance Tuning

CommandDescription
worker_processes auto;
Auto-detect CPU cores for workers
worker_connections 1024;
Max connections per worker process
multi_accept on;
Accept multiple connections at once
use epoll;
Use epoll event model (Linux)
sendfile on;
Enable efficient file serving
tcp_nopush on;
Send headers and file in one packet
tcp_nodelay on;
Disable Nagle's algorithm (low latency)
keepalive_timeout 65;
Keep connections alive for 65 seconds
keepalive_requests 100;
Max requests per keepalive connection
client_max_body_size 10m;
Max upload size (10MB)
client_body_buffer_size 128k;
Buffer size for request body
open_file_cache max=1000 inactive=20s;
Cache file metadata for faster serving

More Guides

🌿
Git Commands
Complete Git command reference cheat sheet — from basics to advanced workflows, including branching, stashing, rebasing, and tagging. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference cheat sheet — modes, motions, editing, search and replace, macros, registers, marks, and window management.
🐳
Docker Commands
Complete Docker & Docker Compose command reference cheat sheet — containers, images, volumes, networks, registry auth, buildx multi-platform builds, & cleanup.
🔤
Regex Reference
Complete regular expression reference cheat sheet — character classes, anchors, quantifiers, groups, lookaheads, flags, and JavaScript string methods.
🐧
Linux Commands
Complete Linux/Bash command reference cheat sheet — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference cheat sheet — pods, deployments, services, secrets, namespaces, scaling, RBAC, networking, and Helm charts.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, control flow, classes, error handling, file I/O, comprehensions, and built-ins.
🗃️
SQL Reference
Complete SQL reference cheat sheet — queries, joins, aggregation, subqueries, indexes, window functions, string and date functions, and database management.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, agent forwarding, security hardening, and troubleshooting.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, shared libraries, credentials, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
⚡
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, plus retry, rate limiting, and circuit breaker patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
◈
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts cheat sheet — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, CloudWatch, SQS/SNS, Route 53, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, structs, interfaces, goroutines, channels, error handling, testing, and the standard library.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, providers, backend configuration, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, Galaxy, handlers, conditionals, loops, and ad-hoc commands.
🪶
Apache
Complete Apache HTTP Server cheat sheet — virtual hosts, modules, rewrite rules, and SSL, plus access control, logging, and performance.
🔤
ASCII Table
Complete ASCII character reference with decimal, hexadecimal, and character values, plus control codes and common escape sequences.
🔧
Awk
Powerful text processing language for pattern scanning, data extraction, arrays, control flow, and report generation with built-in variables.
💻
Bash
Complete Bash reference cheat sheet — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
⚙️
C
Complete C programming cheat sheet covering syntax, pointers, memory management, structs, file I/O, preprocessor, and standard library.
🔐
Chmod
Linux file permission commands and patterns for chmod, covering numeric and symbolic modes, recursive changes, and SUID/SGID/sticky bits.
🔧
Chrome DevTools
Essential Chrome DevTools shortcuts, commands, and workflows for web developers — covering Network, Performance, and Application panels.
🔷
C++
Complete C++ cheat sheet covering STL containers, OOP, templates, smart pointers, iterators, lambda expressions, and modern C++ features.
⏰
Cron
Cron scheduling reference covering syntax, special strings, field values, crontab management, environment variables, and logging.
🎨
CSS
Complete CSS reference cheat sheet — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
🌐
Curl
Curl command-line reference for HTTP requests, headers, authentication, cookies, proxies, file transfers, SSL/TLS, debugging, and API patterns.
🎯
Dart
Dart language cheat sheet covering syntax, types, OOP, null safety, and async patterns, plus collections, error handling, and classes.
🐳
Docker Compose
Docker Compose reference covering CLI commands, service configuration, networking, volumes, health checks, profiles, and build options.
💧
Drizzle ORM
Complete Drizzle ORM reference for schema definition, column types, queries, filters, joins, relations, migrations, indexes, and patterns.
⚡
Emmet
Quick reference for Emmet abbreviations for lightning-fast HTML and CSS coding, covering nesting, multiplication, numbering, and grouping.
🔍
Find
Search for files and directories in a directory hierarchy with powerful filtering by name, size, time, permissions, type, and actions.
🔥
Firebase
Firebase reference covering Authentication, Firestore, Realtime Database, Cloud Functions, Hosting, Storage, and security rules.
🤖
GitHub Actions
Complete GitHub Actions cheat sheet — workflows, triggers, jobs, and CI/CD patterns, plus matrix strategies, caching, and artifacts.
🔎
Grep
Search text using patterns. Filter lines from files, command output, or streams with regular expressions, context options, and file filtering.
📄
HTML
Complete HTML reference — document structure, text content, links, forms, tables, media, semantic elements, meta tags, attributes, and accessibility.
📡
HTTP Status Codes
Complete reference of all standard HTTP response status codes across 1xx-5xx classes, with descriptions, examples, and common usage patterns.
☕
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
💲
jQuery
Quick reference for jQuery selectors, DOM manipulation, events, AJAX, and more, including animation effects, traversing, and plugins.
🔺
Laravel
Laravel PHP framework cheat sheet for routing, Eloquent, Blade, Artisan, and more, plus middleware, validation, and authentication.
📐
LaTeX
Quick reference for LaTeX document structure, math mode, formatting, and common packages, plus figures, tables, and citation styles.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, task lists, footnotes, and extensions.
🍃
MongoDB
MongoDB reference covering CRUD operations, aggregation, indexes, and administration, plus replica sets, users, roles, and query operators.
🐬
MySQL
Complete MySQL cheat sheet covering queries, joins, indexes, transactions, data types, user permissions, and database administration.
▲
Next.js
Next.js App Router reference covering routing, data fetching, server components, API routes, middleware, and deployment configuration.
🟩
Node.js
Comprehensive Node.js runtime reference covering modules, file system, HTTP, streams, events, child processes, and npm scripts.
📦
npm
Complete npm cheat sheet — package management, scripts, publishing, and configuration, plus workspaces, security audits, and npx.
🔢
NumPy
Essential NumPy commands for array manipulation and numerical computing in Python, covering reshaping, broadcasting, and linear algebra.
🐼
Pandas
Pandas cheat sheet for data manipulation, analysis, and transformation in Python, covering DataFrames, grouping, merging, and date/time.
🐘
PHP
Complete PHP cheat sheet covering syntax, OOP, arrays, PDO, and modern PHP 8.x features, plus file I/O, superglobals, and error handling.
🔄
PM2
Production process manager for Node.js applications with cluster mode, monitoring, log management, startup scripts, and zero-downtime reloads.
💎
Prisma
Complete Prisma ORM cheat sheet — schema, queries, migrations, and CLI, plus relations, aggregations, filtering, and seeding patterns.
🦀
Rust
Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, structs, enums, error handling, closures, and concurrency.
💅
Sass
Complete Sass/SCSS cheat sheet covering variables, mixins, functions, nesting, extends, maps, and the modern module system.
📺
Screen
GNU Screen terminal multiplexer for persistent sessions, window and split-region management, key bindings, copy mode, and remote work.
✂️
Sed
Stream editor for filtering and transforming text, line by line — substitution, address ranges, hold space, branching, and flags.
⚡
Supabase
Complete Supabase cheat sheet — auth, database, realtime, storage, and edge functions, plus row level security and migrations.
🖥️
Tmux
Terminal multiplexer cheat sheet for managing multiple sessions, windows, and panes from a single terminal, with copy mode and status bar configuration.
📦
TOML
Quick reference for TOML configuration file syntax, types, tables, and common patterns, including arrays of tables and inline tables.
▲
Vercel CLI
Complete Vercel CLI reference for deployment, project management, domains, environment variables, secrets, logs, edge functions, and configuration.
⚡
Vite
Next-generation frontend build tool with instant HMR, native ES modules, plugins, environment variables, library mode, and Rollup-based builds.
📦
Webpack
Module bundler for JavaScript applications — entry/output config, loaders, plugins, code splitting, module resolution, and optimization.
🎯
XPath
Quick reference for XPath expressions, axes, predicates, string functions, node tests, and operators for XML/HTML querying.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, aliases, multi-line strings, nested structures, and common patterns.

📖 Free, searchable command reference. Bookmark this page for quick access.