Nginx 配置生成器(server 块)
生成 nginx server 块:静态站点、单页应用、PHP-FPM 或反向代理,支持 Let’s Encrypt HTTPS、跳转、HTTP/2、gzip、缓存、安全头和 WebSocket。
重新加载之前先获取证书,否则 nginx -t 会因缺少文件而失败:创建 /var/www/letsencrypt,先只启用 80 端口的块,然后运行 certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com 。通配符域名需要改用 DNS 验证。
在反向代理模式下,静态资源的缓存交给你的应用处理;请在那里设置 Cache-Control 头。
把文件保存为 /etc/nginx/sites-available/example.com(Debian/Ubuntu 上再链接到 sites-enabled)或 /etc/nginx/conf.d/example.com.conf,然后测试并重新加载。
nginx 承载着大部分网站,但配置很容易出现细微的错误:漏掉一个分号、HTTPS 跳转循环,或安全头在 location 块里悄悄消失。这个生成器为静态站点、单页应用、PHP-FPM 站点,或指向另一个端口上应用的反向代理,写出带注释的完整 server 块,支持 Let’s Encrypt HTTPS、规范主机名跳转、HTTP/2、gzip、资源缓存、安全头、WebSocket 以及可选的限流。
使用方法
- 输入域名(第一个是主域名)并选择站点类型。
- 填写网站根目录、应用地址或 PHP-FPM 套接字。
- 勾选 HTTPS、跳转和你需要的附加功能。
- 保存文件、获取证书,然后运行 nginx -t 并重新加载。
计算公式
HTTPS layout: server :80 (ACME challenge + 301 to https) → server :443 for the extra names (301 to the main name) → server :443 for the main name with the site configuration.
try_files 决定提供什么内容:静态文件用 $uri $uri/ =404,单页应用的回退用 /index.html,PHP 前端控制器用 /index.php?$query_string。server 块中的 add_header 不会被自带 add_header 的 location 继承,所以生成的 location 避免使用 add_header。
示例
把 example.com 和 www.example.com 以 HTTPS 反向代理到 http://127.0.0.1:3000,输出有 3 个 server 块——80 端口的跳转、443 上 www → example.com,以及主站点;主 location 中包含 proxy_pass http://127.0.0.1:3000;,以及 Host、X-Forwarded 和 WebSocket 升级头。
常见问题
map 块应该放在哪里?
map 和 limit_req_zone 属于 http 上下文。/etc/nginx/conf.d/ 和 sites-enabled/ 中的文件都被包含在 http 内,所以生成的文件可以原样保存到那里。
为什么用 "http2 on;" 而不是 "listen 443 ssl http2"?
nginx 1.25.1 引入了单独的 http2 指令,并弃用了 listen 参数。对于旧版本,例如某些发行版中的 1.18 或 1.22 软件包,请取消勾选新语法选项。
应该立刻启用 HSTS 吗?
不要。浏览器一旦看到 HSTS,就会在整个 max-age 期间拒绝普通 HTTP。请在 HTTPS 处处正常之后再开启,并且只有所有子域名都准备好了才添加 includeSubDomains。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/nginx-config-generator/
引用此工具
kakaoCalc. (2026, November 8). Nginx 配置生成器(server 块). https://kakao.mobile/zh/tools/nginx-config-generator/
“Nginx 配置生成器(server 块).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/nginx-config-generator/.