二进制安装的nginx默认不带systemd服务和预设conf结构,配置多虚拟主机需手动创建conf/vhosts/目录,每个站点单独存放.conf文件,主配置中添加include vhosts/*.conf,并确保语法检查通过后重载。

二进制安装的 Nginx(如官方预编译包或从 nginx.org 下载的 Windows/Linux 二进制版)默认不带 systemd 服务、不自动创建 conf 子目录结构,配置多虚拟主机需手动组织文件,核心是避免直接修改 nginx.conf 主文件,保持清晰可维护。
把每个站点单独拆成独立 .conf 文件
在 conf/ 目录下新建 vhosts/ 子目录(如不存在就创建),每个虚拟主机对应一个以 .conf 结尾的文件,例如:conf/vhosts/site1.example.com.confconf/vhosts/site2.test.local.conf
文件内容示例(基于域名):
server {
listen 80;
server_name site1.example.com;
root /usr/share/nginx/html/site1;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
在主配置中引入 vhosts 目录
编辑 conf/nginx.conf,找到 http { ... } 块,在其内部末尾(include mime.types; 之后、其他 server 块之前)添加一行:
include vhosts/*.conf;
注意路径是相对于 nginx.conf 所在目录的相对路径。若你的 vhosts 在 conf/ 下,就写 vhosts/*.conf;若放在 /etc/nginx/vhosts/,则写绝对路径(如 /etc/nginx/vhosts/*.conf)。
准备网站根目录和测试页面
为每个站点创建独立根目录,并放一个简单 index.html 用于验证:
mkdir -p /usr/share/nginx/html/site1echo "<h1>Site 1 OK</h1>" > /usr/share/nginx/html/site1/index.html- 同理创建
site2目录及页面
确保 Nginx 进程对这些目录有读取权限(Linux 下通常属主为 nginx 或 www-data,Windows 下注意路径反斜杠兼容性)。
验证并重载配置
每次改完配置都必须先检查语法,再重载:
- Linux/macOS:
./sbin/nginx -t(路径以你实际二进制位置为准,如/opt/nginx/sbin/nginx -t) - Windows:
nginx.exe -t(在命令行进入 nginx 安装目录执行) - 无报错后,执行重载:
./sbin/nginx -s reload或nginx.exe -s reload
若使用 Windows,还需确认 hosts 文件已添加映射(如 127.0.0.1 site1.example.com),Linux 同理可配 hosts 或用本地 DNS 测试。











