用 include 管理站点配置的核心是统一存放、按需加载、软链启停;站点配置单独成文件放 sites-available,主配置 http 块末尾 include sites-enabled/*.conf,通过软链控制启用状态,每次修改后需 nginx -t 验证再 reload。

用 include 把各站点配置独立出来,核心就三点:统一存放、按需加载、软链启停。主配置保持干净,新增或下线站点不碰 nginx.conf,改完 reload 就生效。
站点配置单独成文件
每个网站一个 .conf 文件,放在固定目录里,比如:
/etc/nginx/sites-available/example.com.conf/etc/nginx/sites-available/api.internal.conf
每个文件只写一个完整的 server 块,包含 server_name、root、location 等全部站点专属配置,不混其他逻辑。
主配置里只加一行 include
打开 /etc/nginx/nginx.conf,在 http { ... } 块的末尾加入:
include /etc/nginx/sites-enabled/*.conf;
注意:这行必须在 http 块内,不能写在最外层或 server 块里。Nginx 启动时会按字母顺序加载匹配的所有文件。
用符号链接控制启用状态
不要直接往 sites-enabled/ 里放配置文件,而是用软链管理:
- 启用站点:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf - 停用站点:删掉对应软链,或者重命名(如加
.disabled后缀)
这样能清晰区分“已定义”和“已启用”,避免误删或遗漏。
每次修改后必须验证再重载
改完任一配置文件,都要执行两步:
-
nginx -t—— 检查语法是否正确,确认所有被 include 的文件都能加载 -
nginx -s reload—— 平滑重载配置,不影响正在处理的请求
如果 -t 报错,错误信息通常会指出是哪个 .conf 文件哪一行有问题,定位非常快。


















