nginx按域名独立配置的核心是主配置分离与按需加载,即在nginx.conf的http块末尾添加include conf.d/*.conf,使每个域名对应一个独立的.conf文件(如blog.example.com.conf),仅含专属server块;同时需设置default.conf作为兜底站点并加default_server参数,最后通过nginx -t验证、nginx -s reload生效。

Nginx 实现按域名独立配置文件,核心是“主配置分离 + 按需加载”,不是把所有内容堆在 nginx.conf 里,而是让每个域名(或服务)拥有自己的 .conf 文件,由主配置统一引入。这种方式清晰、安全、易维护。
主配置只留骨架,用 include 加载 conf.d
打开 `nginx.conf`,找到 http 块,在末尾(server 块之前)加入这行:
include conf.d/*.conf;
这一行告诉 Nginx:启动或重载时,把 conf.d/ 目录下所有以 .conf 结尾的文件,按字母顺序依次读进来,当作当前位置的配置内容。Windows 解压版默认就有这个目录;Linux 包管理安装的通常也在 /etc/nginx/conf.d/。
确保 nginx.conf 中不再直接写 server 块——那些都该挪出去。
每个域名一个 .conf 文件,命名清晰
在 conf.d/ 下新建文件,比如:
blog.example.com.confapi.example.com.confshop.example.com.conf
每个文件只包含一个完整的 server 块,例如:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
server {
listen 80;
server_name blog.example.com www.blog.example.com;
root /var/www/blog;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
server_name 必须准确填写该域名(支持空格分隔多个,也支持通配符,但建议明确列出);root 指向对应网站根目录;其他指令如日志路径、SSL 配置、反向代理等,都只作用于这个域名。
设置默认兜底站点,防未匹配请求
当用户直接用 IP 访问,或 Host 头不匹配任何 server_name 时,Nginx 会选第一个加载的 server 块处理。为避免信息泄露或误响应,单独建一个 default.conf:
server {
listen 80 default_server;
server_name _;
return 444; # 或返回 403 / 重定向到首页
}
注意:default_server 参数必须加在 listen 行上(如 listen 80 default_server;),仅靠文件名排序不可靠。
验证与生效,别跳过检查
改完配置后,一定先测试语法再重载:
- 运行
nginx -t—— 显示 syntax is okay 和 test is successful 才算通过 - 语法正确后执行
nginx -s reload(Windows 可用nginx.exe -s reload) - 若报错,错误提示一般会指出哪个
.conf文件第几行有问题,定位快、影响小
这样拆开后,增删一个域名,只需新建或删掉一个文件,不影响其他服务。










