Nginx 配置生成
按需生成 Nginx server 配置:静态站/SPA/反向代理、HTTPS/HTTP2/HSTS、gzip、静态缓存、安全响应头、上传大小、WebSocket、ACME 续期放行,纯前端生成可直接复制。
纯前端处理,数据不上传
站点
类型
HTTPS
性能
安全
其它
生成的配置
# HTTP 自动跳转 HTTPS
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
root /var/www/example;
index index.html index.htm;
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
location ~* \.(?:js|css|png|jpe?g|gif|ico|svg|webp|avif|woff2?|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}工具介绍
部署网站时,写 Nginx 配置是绕不开的一步:托管静态网站、给单页应用(SPA)配置前端路由回退、把请求反向代理到后端、开启 HTTPS 与 gzip、加上缓存和安全头……这些规则语法琐碎、容易写错,一个 try_files、proxy 头或 client_max_body_size 没配好,就可能出现刷新 404、WebSocket 断连、上传 413 或证书续期失败。
本工具用表单帮你快速生成规范、可直接用的 Nginx server 配置。站点层面可设域名、www 处理方式(仅主域 / 含 www / www 301 跳转)和自定义 HTTP/HTTPS 端口;部署类型支持静态站、SPA 与反向代理,反代可配 location 路径、WebSocket 与代理超时。HTTPS 区可开启 HTTP/2(http2 on 新语法)、HSTS、强制跳转并自定义证书路径;还能一键加上 gzip 压缩、静态资源 expires 缓存、X-Frame-Options 等安全响应头、隐藏文件防护、上传大小限制,以及为 Let's Encrypt 自动续期放行 ACME 验证。
右侧实时生成对应配置,各 block 缩进规范、强制跳转时 80 端口只保留 301(并按需放行 ACME),可直接复制或下载为 .conf。整个过程在浏览器本地完成,你填写的域名、证书路径等信息不会上传到任何服务器;本工具只生成配置,不负责签发 SSL 证书。
使用方法
- 填写域名、www 处理方式与 HTTP/HTTPS 监听端口。
- 选择类型:静态网站、单页应用(SPA)或反向代理,反代可设 location 路径、WebSocket 与代理超时。
- 按需开启 HTTPS、HTTP/2、HSTS、强制跳转,并自定义证书与私钥路径。
- 按需勾选 gzip、静态资源缓存、安全响应头、隐藏文件防护、上传大小限制与 ACME 验证放行。
- 右侧实时生成配置,点「复制」或「下载 .conf」放入 Nginx 配置目录,nginx -t 测试后 reload。
常见问题
- 生成的配置放在哪里?如何生效?
- 通常放到 /etc/nginx/conf.d/ 下的 .conf 文件,或 /etc/nginx/sites-available/ 并软链到 sites-enabled。改完执行 nginx -t 测试语法,通过后 nginx -s reload(或 systemctl reload nginx)平滑重载,无需停机。
- SPA 单页应用模式有什么特别?
- 前端路由需要 try_files $uri $uri/ /index.html;,把匹配不到的路径回退到 index.html,避免刷新子路由出现 404。本工具选 SPA 会自动加上,静态站则回退 =404。
- 强制跳转 HTTPS 后,Let\u2019s Encrypt 证书还能自动续期吗?
- 能。强制跳转时 80 端口只剩 301,会拦掉 ACME 验证。勾选「ACME 验证放行」后会在 80 端口块加入 location ^~ /.well-known/acme-challenge/ 并 allow all,certbot/acme.sh 的 HTTP-01 验证即可正常续期。
- 静态资源缓存和安全响应头分别加了什么?
- 缓存对 js/css/图片/字体等加 expires 30d 与 Cache-Control: public, immutable,降低回源。安全头包含 X-Frame-Options(防点击劫持)、X-Content-Type-Options: nosniff、Referrer-Policy;开启 HTTPS 时还可加 HSTS。隐藏文件防护用 location ~ /\. { deny all; } 拦截 .git、.env 等。
- 上传大文件报 413 怎么办?WebSocket / 代理超时如何配?
- 413 是 client_max_body_size 太小,在「上传大小限制」填 MB 数(如 50)即可放开,填 0 表示不限制。反向代理勾选 WebSocket 会加 Upgrade/Connection 头让长连接不断开,代理超时则设置 proxy_connect/send/read_timeout,适合慢接口或大文件转发。
- 生成的 HTTP/2 用的是什么语法?数据会上传吗?
- 采用 Nginx 1.25.1+ 的新写法 http2 on;(独立指令,而非旧的 listen ... http2)。所有配置在浏览器本地用字符串拼装生成,域名、证书路径等信息不会上传到任何服务器,本工具也不签发证书。