Nginx通过http块内include指令加载分散的server配置,推荐使用/etc/nginx/conf.d/*.conf路径;需确保include位于http{}内、路径正确,并用sudo nginx -T验证生效。

Nginx 主配置文件 nginx.conf 本身不直接写多个站点的 server 块,而是通过 include 指令把分散的虚拟主机配置“加载进来”。这是保持主配置简洁、便于维护的关键做法。
核心操作就是在 http { ... } 块内添加 include 行
比如,在 /etc/nginx/nginx.conf 文件中找到 http 区域,确保里面有类似这样的语句:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# ? 这一行就是关键:引入虚拟主机配置
include /etc/nginx/conf.d/*.conf;
# 其他通用设置(日志、缓存等)...
}
只要这行 include 存在且路径正确,Nginx 启动或重载时就会自动读取该目录下所有以 .conf 结尾的文件,并把里面的 server { ... } 块当作有效配置处理。
常见引入路径有三种,按推荐顺序说明:
/etc/nginx/conf.d/*.conf
最常用、最稳妥的方式。统信UOS、CentOS、Ubuntu 官方包默认启用此路径。你只需把每个站点的配置保存为/etc/nginx/conf.d/site1.conf、/etc/nginx/conf.d/site2.conf等,无需额外软链接或修改主配置。-
/etc/nginx/sites-enabled/*.conf
Debian/Ubuntu 系风格,依赖sites-available+sites-enabled软链接机制。若你用的是这种结构,主配置中应写:include /etc/nginx/sites-enabled/*;
注意这里没加
.conf后缀,因为该目录下通常是符号链接,不强制要求扩展名。 -
自定义路径,例如
/etc/nginx/vhosts/*.conf
可以自己创建目录并显式引入,但需手动确保路径存在、权限合理(Nginx 工作进程要能读取),例如:include /etc/nginx/vhosts/*.conf;
验证是否生效的小技巧:
运行 sudo nginx -T(大写 T),它会输出 Nginx 实际加载的完整配置树,你可以直接搜索 server_name 或你的域名,确认对应 server 块确实被包含进来了。
注意两个细节:
-
include必须写在http { }大括号内部,不能放在events或全局层级; - 路径支持通配符
*,但不支持递归(如**/*.conf不可用)。
不复杂但容易忽略











