Nginx
Configure Nginx for reverse proxy, load balancing, SSL termination, and high-performance static serving.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/ivangdavila/nginxWhen to Use
User needs Nginx expertise — from basic server blocks to production configurations. Agent handles reverse proxy, SSL, caching, and performance tuning.
Quick Reference
| Topic | File |
|---|---|
| Reverse proxy patterns | proxy.md |
| SSL/TLS configuration | ssl.md |
| Performance tuning | performance.md |
| Common configurations | examples.md |
Location Matching
- Exact
=first, then^~prefix, then regex~/~*, then longest prefix location /apimatches/api,/api/,/api/anything— prefix matchlocation = /apionly matches exactly/api— not/api/location ~ \.php$is regex, case-sensitive —~*for case-insensitive^~stops regex search if prefix matches — use for static files
proxy_pass Trailing Slash
proxy_pass http://backendpreserves location path —/api/users→/api/usersproxy_pass http://backend/replaces location path —/api/users→/users- Common mistake: missing slash = double path — or unexpected routing
- Test with
curl -vto see actual backend request
try_files
try_files $uri $uri/ /index.htmlfor SPA — checks file, then dir, then fallback- Last argument is internal redirect — or
=404for error $uri/tries directory with index — setindex index.html- Don't use for proxied locations — use
proxy_passdirectly
Proxy Headers
proxy_set_header Host $host— backend sees original host, not proxy IPproxy_set_header X-Real-IP $remote_addr— client IP, not proxyproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for— append to chainproxy_set_header X-Forwarded-Proto $scheme— for HTTPS detection
Upstream
- Define servers in
upstreamblock —upstream backend { server 127.0.0.1:3000; } proxy_pass http://backenduses upstream — load balancing included- Health checks with
max_failsandfail_timeout— marks server unavailable keepalive 32for connection pooling — reduces connection overhead
SSL/TLS
ssl_certificateis full chain — cert + intermediates, not just certssl_certificate_keyis private key — keep permissions restrictedssl_protocols TLSv1.2 TLSv1.3— disable older protocolsssl_prefer_server_ciphers on— server chooses cipher, not client
Common Mistakes
nginx -tbeforenginx -s reload— test config first- Missing semicolon — syntax error, vague message
rootinsidelocation— prefer inserver, override only when neededaliasvsroot— alias replaces location, root appends location- Variables in
if— many things break inside if, avoid complex logic
Variables
$uriis decoded, normalized path —/foo%20barbecomes/foo bar$request_uriis original with query string — unchanged from client$argsis query string —$arg_namefor specific parameter$hostfrom Host header —$server_namefrom config
Performance
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-ivangdavila-nginx": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Animations
Create performant web animations with proper accessibility and timing.
Arduino
Develop Arduino projects avoiding common wiring, power, and code pitfalls.
Bulgarian
Write Bulgarian that sounds human. Not formal, not robotic, not AI-generated.
Arabic
Write Arabic that sounds human. Not formal, not robotic, not AI-generated.
Assistant
Manage tasks, communications, and scheduling with proactive and organized support.