官方网站 云服务器 专用服务器香港云主机28元月 全球云主机40+ 数据中心地区 成品网站模版 企业建站 业务咨询 微信客服 控制版面

windows nginx配置虚拟主机

admin 7个月前 (01-14) 阅读数 504 #虚拟主机知识

当然可以,以下是根据您提供的原始内容进行错别字修正、语句润色、内容补充与逻辑优化后的原创版本,整体风格更加专业流畅,结构清晰,并增强了可读性和实用性。


Windows 下 Nginx 配置虚拟主机的完整指南

在现代 Web 开发与部署中,Nginx 凭借其高性能、低资源消耗以及灵活强大的配置能力,已成为最受欢迎的 HTTP 服务器和反向代理工具之一,尽管 Nginx 最初主要面向 Linux 系统设计,但它对 Windows 平台同样提供了良好的支持,对于开发者或运维人员而言,在 Windows 环境下使用 Nginx 搭建本地开发环境、多项目测试服务或小型站点托管平台,是一种高效且实用的选择。

配置虚拟主机(Virtual Host) 是实现“一台机器运行多个网站”的核心技术手段,本文将从零开始,详细介绍如何在 Windows 系统上安装 Nginx,并通过实际操作完成基于域名、端口和 IP 的虚拟主机配置,帮助您构建一个功能完整、易于管理的本地 Web 服务环境。


准备工作:下载与安装 Nginx

  1. 访问官网下载 打开 Nginx 官方网站,选择适用于 Windows 的稳定版本(如 nginx-1.26.2.zip),点击下载。

  2. 解压至目标目录 将压缩包解压到指定路径,

    C:\nginx

    注意:建议路径中不要包含空格或中文字符,以免后续出现权限或解析问题。

  3. 启动 Nginx 服务 Nginx 在 Windows 上以命令行方式运行,无需传统“安装”过程,进入解压目录后,双击 nginx.exe 即可启动服务。

  4. 验证是否成功 打开浏览器,访问 http://localhost,若页面显示 "Welcome to nginx!",说明 Nginx 已经正常运行。

  5. 常用控制命令 可通过命令提示符(CMD 或 PowerShell)执行以下指令进行服务管理:

    # 测试配置文件语法
    nginx -t
    # 重载配置(不中断服务)
    nginx -s reload
    # 停止服务
    nginx -s stop
    # 优雅关闭(等待请求处理完毕)
    nginx -s quit

小贴士:为方便日常操作,可将 C:\nginx 添加到系统环境变量 PATH 中;或创建批处理脚本(.bat 文件)来一键启动、重启或停止服务。


理解 Nginx 核心配置结构

Nginx 的主配置文件位于 conf/nginx.conf,采用模块化语法,由若干嵌套的指令块组成,主要包括以下几个关键部分:

指令块 功能说明
events 设置工作模式(如 worker_connections)、连接处理机制等
http 定义全局 HTTP 参数,包括 MIME 类型、日志格式、默认编码及所有 server 虚拟主机
server 表示一个独立的虚拟主机,绑定特定域名、IP 或端口
location 定义 URL 路径匹配规则,控制不同请求的响应行为

📌 所有虚拟主机均定义在 http { } 块内部,每个 server 块代表一个独立网站实例,通过 server_namelisten 实现差异化路由。


配置基于域名的虚拟主机(实战演示)

第一步:准备网站根目录

我们以两个测试站点为例:

  • 站点 Awww.sitea.com → 目录 C:\www\sitea
  • 站点 Bwww.siteb.com → 目录 C:\www\siteb

请手动创建上述目录,并分别添加简单的首页文件用于测试:

<!-- C:\www\sitea\index.html -->
<h1 style="color: blue;">欢迎访问 Site A</h1>
<p>这是来自 sitea.com 的测试页面。</p>
<!-- C:\www\siteb\index.html -->
<h1 style="color: green;">欢迎访问 Site B</h1>
<p>这是来自 siteb.com 的测试页面。</p>

第二步:修改 hosts 文件实现本地域名映射

由于是本地测试,无法使用真实公网域名,需借助系统的 hosts 文件强制解析域名。

  1. 使用管理员权限打开以下文件:

    C:\Windows\System32\drivers\etc\hosts
  2. 在文件末尾添加如下两行记录:

    0.0.1   www.sitea.com
    127.0.0.1   www.siteb.com
  3. 保存并关闭文件(注意:必须用管理员权限编辑,否则无法保存)。

您的计算机已能将这两个自定义域名指向本地回环地址。


第三步:编辑 Nginx 主配置文件

打开 conf/nginx.conf,找到 http { } 区域,在原有 server 块之外新增两个新的 server 配置:

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    # ========== 虚拟主机:Site A ==========
    server {
        listen      80;
        server_name www.sitea.com;
        location / {
            root   C:/www/sitea;
            index  index.html index.htm;
        }
        error_page  500 502 503 504 /50x.html;
        location = /50x.html {
            root  html;
        }
    }
    # ========== 虚拟主机:Site B ==========
    server {
        listen      80;
        server_name www.siteb.com;
        location / {
            root   C:/www/siteb;
            index  index.html index.htm;
        }
        error_page  500 502 503 504 /50x.html;
        location = /50x.html {
            root  html;
        }
    }
}

⚠️ 注意事项

  • listen 80; 表示监听默认 HTTP 端口;
  • server_name 支持多个域名(空格分隔)、通配符(如 *.example.com)或正则表达式;
  • root 路径使用正斜杠 分隔,即使在 Windows 下也推荐如此写法;
  • 若已有默认 server 块监听 localhost,建议注释掉或调整顺序,避免冲突。

第四步:测试与重载配置

每次修改配置后,请务必先验证语法正确性再重新加载:

# 切换到 Nginx 安装目录
cd C:\nginx
# 检查配置文件语法
nginx -t

则表示配置无误:

nginx: the configuration file C:\nginx\conf\nginx.conf syntax is ok
nginx: configuration file C:\nginx\conf\nginx.conf test is successful

然后执行重载命令使更改生效:

nginx -s reload

第五步:访问测试

打开浏览器,依次访问:

  • http://www.sitea.com
  • http://www.siteb.com

应分别看到对应的欢迎页面,表明虚拟主机配置成功!


进阶配置:基于端口与 IP 的虚拟主机

除了基于域名的虚拟主机外,Nginx 还支持其他两种常见模式:

基于端口的虚拟主机

允许同一 IP 地址下通过不同端口提供多个服务。

示例配置:
server {
    listen      8080;
    server_name localhost;
    location / {
        root   C:/www/sitec;
        index  index.html;
    }
}

创建对应目录 C:\www\sitec\index.html 后,访问:

http://localhost:8080

即可查看该站点。

💡 适用场景:本地多项目调试、API 接口服务隔离、微前端独立部署等。


基于 IP 地址的虚拟主机

当服务器拥有多个网络接口或绑定多个 IP 地址时,可通过 IP 实现站点分离。

示例配置:
server {
    listen      192.168.1.100:80;
    server_name site1.example.com;
    location / {
        root   C:/www/site1;
        index  index.html;
    }
}
server {
版权声明
本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主 如果涉及侵权请尽快告知,我们将会在第一时间删除。
本站原创内容未经允许不得转载,或转载时需注明出处:特网云知识库

热门