全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-20 7 分钟 ✍️ juanwangdev

虚拟主机配置

虚拟主机允许单台 Nginx 服务器托管多个网站,下面介绍三种配置方式。

基于域名的虚拟主机

最常见的虚拟主机类型,通过不同域名访问不同网站:

nginx
server {
    listen 80;
    server_name www.site1.com;
    root /var/www/site1;
    
    location / {
        index index.html;
    }
}

server {
    listen 80;
    server_name www.site2.com;
    root /var/www/site2;
    
    location / {
        index index.html;
    }
}

server_name 匹配规则

规则类型示例说明
精确匹配server_name www.example.com;完全匹配域名
通配符前缀server_name *.example.com;匹配子域名
通配符后缀server_name www.example.*;匹配顶级域名
正则匹配server_name ~^www\d+\.example\.com$;使用正则表达式

基于端口的虚拟主机

通过不同端口区分不同网站:

nginx
server {
    listen 8080;
    server_name localhost;
    root /var/www/app1;
}

server {
    listen 8090;
    server_name localhost;
    root /var/www/app2;
}

基于 IP 的虚拟主机

通过不同 IP 地址区分不同网站,需服务器配置多 IP:

nginx
server {
    listen 192.168.1.10:80;
    server_name localhost;
    root /var/www/site_a;
}

server {
    listen 192.168.1.11:80;
    server_name localhost;
    root /var/www/site_b;
}

默认虚拟主机

当请求不匹配任何 server_name 时,由默认虚拟主机处理:

nginx
server {
    listen 80 default_server;
    server_name _;
    return 444;
}

注意事项

  • default_server 标记该 server 为默认虚拟主机
  • server_name _ 是约定俗成的写法,表示捕获所有未匹配的域名
  • return 444 是 Nginx 特有状态码,直接关闭连接不返回响应
  • 同一端口多个 server 时,Nginx 按 server_name 匹配优先级选择

匹配优先级

  1. 精确匹配(最高优先级)
  2. 通配符前缀匹配(*.example.com
  3. 通配符后缀匹配(www.example.*
  4. 正则匹配
  5. default_server(最低优先级)

组合配置示例

同时基于域名和端口配置虚拟主机:

nginx
# site1.com:80
server {
    listen 80;
    server_name www.site1.com;
    root /var/www/site1;
}

# site2.com:80
server {
    listen 80;
    server_name www.site2.com;
    root /var/www/site2;
}

# site3.com:8080
server {
    listen 8080;
    server_name www.site3.com;
    root /var/www/site3;
}

要点总结

  • Nginx 支持基于域名、端口、IP 三种虚拟主机方式
  • 基于域名的虚拟主机最常用,通过 server_name 指令配置
  • server_name 支持精确匹配、通配符、正则表达式
  • default_server 用于处理未匹配到任何域名的请求
  • 匹配优先级:精确 > 通配符前缀 > 通配符后缀 > 正则 > default_server

📝 发现内容有误?点击此处直接编辑

← 上一篇 正向代理与反向代理
下一篇 → 配置文件结构
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库