特网科技为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。

当前位置:首页 > 行业资讯 > 虚拟主机 > 正文内容

Nginx两个虚拟主机配置详解实现多站点高效部署

2025-10-22虚拟主机1126

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             拨号云主机


在现代 Web 服务架构中,Nginx 凭借其卓越的性能表现、低资源消耗以及强大的并发处理能力,已成为全球广泛采用的高性能 HTTP 服务器与反向代理工具,无论是小型个人项目还是大型企业级应用,Nginx 都能高效支撑各种规模的网站部署需求。

尤其当需要在同一台物理或云服务器上运行多个独立站点时,Nginx 提供的“虚拟主机”(Virtual Host)机制显得尤为重要,通过灵活的配置方式,可以轻松实现不同域名或子域名指向各自的网站目录,彼此隔离、互不干扰,本文将系统讲解如何在单台 Nginx 服务器上配置两个虚拟主机,涵盖从环境准备到高级优化的全过程,帮助开发者和运维人员快速掌握这一核心技能。


什么是虚拟主机?

虚拟主机(也称虚拟服务器),是一种通过软件配置手段,在单一物理服务器上模拟出多个逻辑上相互独立的服务实例的技术,每个虚拟主机可拥有独立的:

  • 域名(如 site1.com、blog.site2.org)
  • 监听端口或 IP 地址(可选)
  • 文档根目录(Document Root)
  • 访问控制策略
  • 日志记录路径

尽管这些站点共享相同的硬件资源,但从用户视角来看,它们如同运行在独立服务器上一般,具备完整的功能独立性。

在 Nginx 中,虚拟主机通过 server 块来定义,每一个 server { ... } 区块代表一个独立的站点配置,Nginx 根据请求中的 Host 头字段匹配对应的 server_name,从而决定由哪个虚拟主机响应请求,这种基于名称的虚拟主机技术(Name-based Virtual Hosting)是目前最常见且高效的多站共存方案。


实践前的准备工作

在正式开始配置之前,请确保已完成以下基础设置:

安装并验证 Nginx

首先确认您的系统已安装 Nginx:

nginx -v

若未安装,可根据操作系统使用包管理器进行安装,在 Ubuntu/Debian 系统中执行:

sudo apt update && sudo apt install nginx -y

安装完成后启动并启用开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

访问服务器公网 IP 或本地 http://localhost,应能看到 Nginx 默认欢迎页。


准备两个测试域名

实际生产环境中,需将真实域名解析至服务器公网 IP;但在开发或测试阶段,可通过修改本地 hosts 文件模拟域名解析。

编辑本机 hosts 文件:

  • Windows: C:\Windows\System32\drivers\etc\hosts
  • Linux/macOS: /etc/hosts

添加如下映射:

0.0.1    site1.local
127.0.0.1    site2.local

⚠️ 注意:原文中误写为 0.1,已修正为正确的 0.0.1。

保存后即可在浏览器中通过 http://site1.local 和 http://site2.local 进行本地测试。


创建网站根目录及测试页面

为每个站点创建独立的文件存放路径:

sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2

分别创建简单的首页用于验证:

站点一首页:

<!-- /var/www/site1/index.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8" />站点一</title>
</head>
<body>
  <h1>🎉 欢迎访问站点一:site1.local</h1>
  <p>这是第一个虚拟主机的测试页面。</p>
</body>
</html>

站点二首页:

<!-- /var/www/site2/index.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8" />站点二</title>
</head>
<body>
  <h1>🚀 欢迎访问站点二:site2.local</h1>
  <p>这是第二个虚拟主机的测试页面。</p>
</body>
</html>

设置正确权限

确保 Nginx 进程(通常以 www-data 用户运行)能够读取网站文件:

sudo chown -R www-data:www-data /var/www/site1 /var/www/site2
sudo chmod -R 755 /var/www/*

同时检查父目录是否有执行权限:

sudo chmod +x /var/www

否则可能导致 403 权限拒绝错误。


配置两个虚拟主机

Nginx 主配置文件位于 /etc/nginx/nginx.conf,但推荐将各虚拟主机配置分离管理,提升可维护性。

标准做法是:

  • 将配置文件存放在 /etc/nginx/sites-available/
  • 使用符号链接启用至 /etc/nginx/sites-enabled/

该模式支持“按需启用”,便于后期扩展与调试。


创建第一个虚拟主机配置

创建配置文件:

sudo nano /etc/nginx/sites-available/site1.local
server {
    listen 80;
    server_name site1.local;
    root /var/www/site1;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    access_log /var/log/nginx/site1.access.log;
    error_log  /var/log/nginx/site1.error.log;
}

创建第二个虚拟主机配置

同样创建第二份配置:

sudo nano /etc/nginx/sites-available/site2.local

如下:

server {
    listen 80;
    server_name site2.local;
    root /var/www/site2;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    access_log /var/log/nginx/site2.access.log;
    error_log  /var/log/nginx/site2.error.log;
}

启用虚拟主机

通过符号链接将其加入启用列表:

sudo ln -s /etc/nginx/sites-available/site1.local /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.local /etc/nginx/sites-enabled/

💡 提示:此方法优于直接编辑主配置文件,便于模块化管理和自动化脚本集成。

禁用默认站点防止冲突

Nginx 默认包含一个名为 default 的示例站点,可能拦截所有未匹配的请求,导致新配置无效。

建议删除其启用链接:

sudo rm /etc/nginx/sites-enabled/default

也可改用 mv 重命名备份:

sudo mv /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.bak

测试配置并重新加载服务

始终在重启前验证语法正确性:

sudo nginx -t

若输出提示 “syntax is ok” 且无警告,则安全重新加载配置:

sudo systemctl reload nginx

✅ 推荐使用 reload 而非 restart,避免中断现有连接。


测试访问效果

打开浏览器,依次访问:

如果成功显示各自定制的欢迎页面,说明两个虚拟主机均已正常工作。

你还可以通过命令行工具进一步验证:

curl -H "Host: site1.local" http://127.0.0.1
curl -H "Host: site2.local" http://127.0.0.1

结果应分别返回对应站点的内容。


高级配置建议(适用于生产环境)

上述配置满足基本需求,但在实际部署中还需考虑安全性、性能与可维护性,以下是几项关键优化建议。


🔐 启用 HTTPS(SSL/TLS 加密)

为提升数据传输安全,强烈建议为每个站点配置 SSL 证书,可使用 Let's Encrypt 免费获取:

server {
    listen 443 ssl http2;
    server_name site1.local;
    ssl_certificate     /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-A

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/82884.html

分享给朋友:

“Nginx两个虚拟主机配置详解实现多站点高效部署” 的相关文章

GG服务器租用指南轻松获得免费服务器!

GG 是一个专注于云服务和主机托管的网站,用户可以通过 GG 的租用功能获取免费或低费用的服务器资源。以下是如何使用 GG 租用网站获取无门槛服务器的基本步骤:,,1. **访问 GG 网站**:打开浏览器并访问 GG 的官方网站(通常是 gg.com)。,,2. **注册账户**:在网站上创建一个...

如何每月租用游戏服务器

租用游戏服务器的价格因多种因素而异,包括服务器类型、租赁期限、地理位置和用户需求等。通常情况下,每月租金在几百到几千元不等。建议在购买之前咨询专业的游戏服务器提供商或参考相关市场报告以获取更准确的价格信息。在当今互联网时代,随着科技的发展和娱乐产业的繁荣,越来越多的人开始寻求更高效、便捷的游戏体验,...

服务器租赁,你的新选择

随着云计算技术的发展,服务器租赁已成为企业获取 computing资源的重要方式。这种服务不仅能够满足企业对计算需求的快速响应,还能降低企业的成本。通过选择合适的云服务提供商和灵活的计费模式,用户可以轻松地实现服务器租赁的需求。在当今数字化时代,服务器租赁已成为许多企业和组织不可或缺的基础设施之一,...

价格对比,哪款手机性价比最高

根据您提供的信息,需要具体的价格和比较条件才能确定哪个划算。如果您能提供更多关于产品的价格、促销活动、质量保证等因素,我可以更准确地给出建议。在选择购买服务器还是租赁服务器时,确实需要考虑多个因素,下面我将从几个关键方面进行比较,帮助你做出明智的决策。1. 技术规格和性能购买服务器:灵活性:你可以根...

如何选择优质的网页服务器租用服务,确保网站高效运行?

在选择网页服务器时,优先考虑服务质量是关键。优质的云服务提供商通常拥有先进的硬件和软件配置,能够确保网站的稳定性和性能。良好的技术支持、快速响应的服务支持也是重要考量因素。合理规划资源分配,避免过度负载,也是保持高效运行的重要措施。随着互联网的飞速发展,越来越多的企业和个人开始将网站作为展示产品、吸...

全球市场上的服务器购买指南,选择合适的地点和提供商

购买国外服务器时,应考虑地理位置、网络速度、价格和售后服务。在选择服务器提供商时,建议查看他们的技术实力、客户评价和服务承诺。注意了解服务器的安全性和隐私保护措施。随着科技的发展,网络服务提供商(ISP)在全球范围内提供了各种各样的互联网服务,国外服务器是一个备受关注的选择,它不仅提供更快、更稳定的...