使用步骤
- 填写域名,选择站点类型:反向代理填上游地址,其他类型填网站根目录。
- 按需要勾选 HTTPS、HTTP/2、HSTS、www 跳转、gzip、缓存和安全响应头。
- 复制或下载配置,放到 /etc/nginx/conf.d/,执行 nginx -t 检查后重新加载 nginx。
参数说明
- 反向代理
- 转发到上游地址,并传递 Host、X-Real-IP、X-Forwarded-For、X-Forwarded-Proto 请求头,后端可以拿到真实访客 IP 和协议。
- 单页应用
- 找不到的路径回退到 index.html,适合 Vue Router、React Router 的 history 模式,刷新页面不会 404。
- HTTPS
- 证书路径按 certbot(Let's Encrypt)默认位置生成,HTTP 请求 301 跳转到 HTTPS。HTTP/2 用 listen 443 ssl http2 写法,兼容各版本 nginx。
- HSTS
- 让浏览器在一年内只用 HTTPS 访问该域名和所有子域。开启前请确认所有子域都已配置 HTTPS,否则会无法访问。
示例:带 HTTPS 和 www 的单页应用
域名填 example.com,站点类型选「单页应用」,勾选「HTTPS(Let’s Encrypt 证书路径)」、HTTP/2 和「同时响应 www. 并跳转到主域名」(为了简短,关闭「Gzip 压缩」「安全响应头」和「静态资源长缓存」),生成器会写出三个 server 块:
- 80 端口同时响应两个域名,保留
/.well-known/acme-challenge/可访问以便证书续期,其余请求都以 301 跳转到https://example.com$request_uri。 www.example.com的 443 端口使用同一张证书,并 301 跳转到不带 www 的域名。example.com的 443 端口提供网站内容:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
两个 HTTPS 块都指向 /etc/letsencrypt/live/example.com/fullchain.pem 和 privkey.pem,允许 TLS 1.2 和 1.3,使用 10 MB 的共享会话缓存,会话超时为一天。try_files 这一行的作用是:在 /settings 这样的前端路由上刷新页面时,返回的是应用本身,而不是 404。
常见问题
为什么 nginx -t 提示 http2 指令已弃用?
nginx 1.25.1 起推荐单独写 http2 on;,但 Ubuntu 24.04 等系统自带的 1.24 还不支持这个写法,所以这里用兼容所有版本的 listen 443 ssl http2。新版本只会给出警告,不影响使用。
开启 www 跳转后证书要包含 www 吗?
要。申请证书时同时加上两个域名,例如 certbot -d example.com -d www.example.com。
上传文件报 413 Request Entity Too Large 怎么办?
nginx 默认只允许 1 MB 的请求体,把「上传大小上限」改成需要的值(例如 100)即可。
WebSocket 连接失败怎么办?
反向代理需要转发 Upgrade 和 Connection 请求头,勾选「支持 WebSocket」会自动加上,并把读取超时延长到 1 小时。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。