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

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

使用Nginx搭建虚拟主机从零开始实现多站点部署

2025-09-17虚拟主机1042

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

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

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


在现代 Web 开发与系统运维中,服务器资源的高效利用是保障业务稳定运行的关键环节,随着互联网应用规模的不断扩展,一台物理服务器往往需要承载多个网站或服务,为满足这一需求,虚拟主机(Virtual Host)技术应运而生,并成为共享主机环境中的核心技术之一。

Nginx 作为一款高性能、轻量级的 HTTP 服务器和反向代理工具,凭借其出色的并发处理能力与低资源消耗,在高并发场景下被广泛应用于 Web 服务部署,本文将详细介绍如何通过 Nginx 配置基于域名的虚拟主机,实现在同一台服务器上安全、高效地运行多个独立域名站点。


什么是虚拟主机?

虚拟主机是一种在单一物理服务器上托管多个独立网站的技术,它允许不同的网站共享相同的硬件资源(如 CPU、内存、IP 地址),并通过特定机制进行请求分流,从而达到资源复用的目的。

根据实现方式的不同,虚拟主机主要分为以下三种类型:

  1. 基于名称的虚拟主机(Name-based Virtual Hosting)
    最常见的形式,多个域名共享同一个 IP 地址和端口(如 80 或 443),Nginx 根据客户端请求头中的 Host 字段判断应响应哪个网站,这种方式极大地节省了公网 IP 资源,适用于绝大多数 Web 应用场景。

  2. 基于 IP 的虚拟主机(IP-based Virtual Hosting)
    每个网站绑定一个独立的 IP 地址,适用于需要 SSL/TLS 证书但未支持 SNI(Server Name Indication)的旧客户端环境,由于 IPv4 地址资源紧张,该方式使用较少。

  3. 基于端口的虚拟主机(Port-based Virtual Hosting)
    不同站点监听不同端口(如 example.com:8080 和 example.com:8081),通常用于开发测试环境,不适合公开访问的生产网站。

本文重点介绍基于名称的虚拟主机配置方法,这也是目前最主流且推荐的做法。


Nginx 简介

Nginx(发音为 “engine x”)是由俄罗斯程序员 Igor Sysoev 于 2004 年开发的一款开源高性能 Web 服务器,起初设计用于解决 C10K 问题(即同时处理上万并发连接),如今已发展成集 Web 服务、反向代理、负载均衡、缓存加速于一体的综合性网络中间件。

相较于传统的 Apache 服务器,Nginx 采用事件驱动异步架构,能够以极低的内存开销支撑海量并发连接,其配置文件简洁清晰、模块化程度高,便于维护与扩展,因此成为构建现代 Web 架构的核心组件之一。

除了作为静态资源服务器外,Nginx 还常用于:

  • 反向代理动态应用(如 Node.js、Python Flask)
  • 实现负载均衡与故障转移
  • 提供 HTTPS 加密与 SSL 终止
  • 缓存静态内容以提升响应速度
  • 防御基础 DDoS 攻击与请求限流

掌握 Nginx 的基本配置与调优技巧,已成为系统管理员、DevOps 工程师和后端开发者不可或缺的能力。


环境准备

在开始配置之前,请确保具备以下条件:

  1. 一台运行 Linux 操作系统的服务器(推荐 Ubuntu 20.04/22.04 或 CentOS 7/8);
  2. 已安装并正常运行 Nginx 服务;
  3. 至少两个已注册并正确解析至服务器公网 IP 的域名(如 site1.com 和 site2.com);
  4. 具备 sudo 权限的用户账户,以便执行系统级操作。

检查 Nginx 安装状态

可以通过以下命令查看 Nginx 是否已安装及其版本信息:

nginx -v

检查服务运行状态:

systemctl status nginx

若尚未安装,可根据操作系统选择对应包管理器进行安装。

在 Ubuntu/Debian 系统中:

sudo apt update
sudo apt install nginx -y

在 CentOS/RHEL 系统中:

sudo yum install epel-release -y
sudo yum install nginx -y
# 或使用 dnf(CentOS 8+)
sudo dnf install nginx -y

安装完成后启动服务并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

此时访问服务器的公网 IP 地址,应能看到 Nginx 默认欢迎页面,表示服务已成功运行。


创建网站目录结构

为了保证各站点之间的隔离性与可维护性,建议为每个虚拟主机创建独立的根目录。

以两个示例域名为例:site1.com 和 site2.com,我们为其分别建立目录结构:

sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html

在各自目录下创建简单的测试页面用于验证配置效果:

echo "<h1>欢迎访问 site1.com</h1>" | sudo tee /var/www/site1.com/html/index.html
echo "<h1>欢迎访问 site2.com</h1>" | sudo tee /var/www/site2.com/html/index.html

设置正确的文件权限,确保 Nginx 进程(通常以 www-data 用户运行)可以读取网页内容:

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

⚠️ 注意:/var/www 是标准的 Web 内容存放路径,遵循 Linux 文件系统层次结构标准(FHS),不建议随意更改,除非有特殊安全策略要求。


配置 Nginx 虚拟主机

Nginx 的核心配置文件通常位于 /etc/nginx/nginx.conf,其中定义了全局参数、工作进程模型和事件处理机制,对于站点级别的配置,更推荐采用“模块化”的管理方式——即将每个站点的配置单独存放在 /etc/nginx/sites-available/ 目录下,并通过符号链接启用到 /etc/nginx/sites-enabled/。

这种做法不仅提高了配置的可读性,也方便后续对站点进行启停控制。

创建站点配置文件

配置 site1.com

使用文本编辑器创建第一个站点的配置文件:

sudo nano /etc/nginx/sites-available/site1.com

填入如下配置内容:

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

配置 site2.com

同理,创建第二个站点配置:

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

如下:

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

🔍 配置说明:

  • listen 80;:监听标准 HTTP 端口。
  • server_name:指定该虚拟主机响应的域名列表。
  • root:定义网站根目录。
  • index:设定默认索引文件顺序。
  • try_files:尝试按顺序查找文件,否则返回 404 错误。
  • access_log 与 error_log:分别记录访问日志和错误日志,便于后期排查问题。

启用站点配置

将配置文件通过符号链接激活至 sites-enabled 目录:

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

删除默认站点配置(防止冲突):

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

✅ 小贴士:可通过 ls /etc/nginx/sites-enabled/ 查看当前已启用的站点列表。


测试配置并重载服务

每次修改 Nginx 配

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

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

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

分享给朋友:

“使用Nginx搭建虚拟主机从零开始实现多站点部署” 的相关文章

基于区块链技术的数字身份认证与验证

网络通信是现代信息技术的基础,它通过数字信号在计算机和设备之间传递数据。在现代互联网时代,服务器是连接不同设备、应用程序和服务的关键节点,而通用服务器地址和端口则是实现这些连接的重要手段,本文将详细介绍通用服务器地址和端口的概念、作用以及在实际应用中的重要性。什么是通用服务器地址和端口?通用服务器地...

服务器租赁费用计算,每月多少?

租赁服务器价格因服务提供商、操作系统、存储容量和带宽等因素而异。每月租金在几十到几百元不等。建议参考各云服务提供商的官方定价信息或咨询相关销售人员以获取准确的价格。探索服务器租赁市场的成本与效益随着科技的快速发展,云计算已经成为企业获取计算资源的一种便捷方式,在享受云服务带来的便利的同时,如何合理规...

云服务器使用成本计算与管理

租用云服务器是一种常见的IT资源租赁方式。它提供了按使用量付费的服务,用户只需支付实际使用的资源成本,从而降低运营成本。/cloud-server-cost-analysis在云计算时代,租用云服务器已成为企业、个人和开发者获取互联网资源的重要方式,如何合理地评估和管理租用云服务器的费用成为了关键问...

云服务器搭建网站教程

本教程将介绍如何使用阿里云的云服务器进行网站搭建。你需要选择一个合适的云服务器实例,并确保它有足够的内存和带宽来运行你的网站。你需要安装Web服务器软件(如Apache、Nginx等),并配置数据库服务(如MySQL)。你可以上传你的网站文件到云服务器上,设置域名解析和SSL证书以提高安全性。你需要...

市场趋势预测

近年来,随着科技的发展和消费者需求的变化,市场环境发生了显著变化。在电子商务领域,数字化转型和个性化购物成为主流趋势。环保意识的增强也推动了可再生能源和绿色消费模式的推广。随着全球化的深入,跨境贸易和供应链管理的需求也在不断增加。总体来看,未来市场将更加注重可持续发展、技术创新和社会责任,而消费者也...

虚拟主机租赁价格查询

租用虚拟主机的价格取决于多种因素,包括服务器类型、存储容量、带宽、网络配置等。每月价格在几十元到数百元之间,具体费用需要根据您的需求进行评估。随着互联网技术的发展,越来越多的企业和个人开始利用虚拟主机来存储和管理网站数据,在选择虚拟主机时,价格是一个需要考虑的重要因素,本文将探讨租用虚拟主机的价格,...