当前位置:首页 > 虚拟主机 > 正文

添加虚拟主机怎么弄出来

登录云平台控制台,选择“ 虚拟主机管理”→“创建实例”,填写域名/备案号,分配资源后上传网站文件至指定目录

前期准备

核心概念

术语 说明
虚拟主机 一台物理服务器托管多个独立网站/应用,通过规则区分请求目标
基于域名 最常用方式,同一IP+不同域名指向不同站点
基于端口 同一IP+不同端口号(如80、8080)区分不同站点
基于IP地址 为每个站点分配独立公网IP(成本高,较少用)

必备条件

已注册并完成DNS解析的域名

服务器操作系统(推荐CentOS/Ubuntu/Debian)

Web服务器软件(Apache/Nginx/IIS/LiteSpeed等)

ROOT或sudo权限账户

添加虚拟主机怎么弄出来 第1张

主流方案实操指南

▶️ 方案A:Apache实现多域名虚拟主机(以Ubuntu为例)

步骤1:安装依赖

sudo apt update && apt install apache2 -y

步骤2:创建站点目录结构

# 创建第一个站点目录及测试页 sudo mkdir -p /var/www/site1.example.com/html echo "<h1>Site 1 Content</h1>" | sudo tee /var/www/site1.example.com/html/index.html # 创建第二个站点目录及测试页 sudo mkdir -p /var/www/site2.example.com/html echo "<h1>Site 2 Content</h1>" | sudo tee /var/www/site2.example.com/html/index.html

步骤3:配置虚拟主机(编辑默认-ssl.conf)

sudo nano /etc/apache2/sites-available/000-default.conf

关键配置段

<VirtualHost :80> ServerAdmin admin@site1.example.com ServerName site1.example.com DocumentRoot /var/www/site1.example.com/html ErrorLog ${APACHE_LOG_DIR}/site1_error.log CustomLog ${APACHE_LOG_DIR}/site1_access.log combined </VirtualHost> <VirtualHost :80> ServerAdmin admin@site2.example.com ServerName site2.example.com DocumentRoot /var/www/site2.example.com/html ErrorLog ${APACHE_LOG_DIR}/site2_error.log CustomLog ${APACHE_LOG_DIR}/site2_access.log combined </VirtualHost>

步骤4:启用配置并重启服务

sudo a2ensite 000-default.conf # 启用新配置 sudo systemctl restart apache2 # 重启Apache

▶️ 方案B:Nginx实现多域名虚拟主机(以CentOS为例)

步骤1:安装依赖

sudo yum install epel-release -y sudo yum install nginx -y

步骤2:创建站点目录结构

# 创建第一个站点目录及测试页 sudo mkdir -p /usr/share/nginx/html/siteA/ echo "<h1>Website A</h1>" | sudo tee /usr/share/nginx/html/siteA/index.html # 创建第二个站点目录及测试页 sudo mkdir -p /usr/share/nginx/html/siteB/ echo "<h1>Website B</h1>" | sudo tee /usr/share/nginx/html/siteB/index.html

步骤3:配置虚拟主机(编辑nginx.conf)

sudo vi /etc/nginx/conf.d/virtualhost.conf

关键配置段

添加虚拟主机怎么弄出来 第2张

添加虚拟主机怎么弄出来 第3张

server { listen 80; server_name siteA.example.com; root /usr/share/nginx/html/siteA; access_log /var/log/nginx/siteA_access.log; error_log /var/log/nginx/siteA_error.log; } server { listen 80; server_name siteB.example.com; root /usr/share/nginx/html/siteB; access_log /var/log/nginx/siteB_access.log; error_log /var/log/nginx/siteB_error.log; }

步骤4:重启服务生效

sudo systemctl restart nginx


验证与排障

检查项 命令/操作 预期结果
域名解析 dig A yourdomain.com 显示正确的服务器IP
服务状态 systemctl status apache2/nginx 显示active (running)
防火墙开放 sudo ufw allow 80/tcp HTTP端口已放行
访问测试 浏览器输入各域名 显示对应站点的内容
查看错误日志 tail -f /var/log/apache2/.log 快速定位配置错误原因


相关问题与解答

Q1: 为什么修改完配置后刷新页面还是旧内容?

解答

① 未执行systemctl restart命令使配置生效;

② 浏览器缓存导致,尝试Ctrl+F5强制刷新;

③ 检查DocumentRoot路径是否拼写错误;

④ 确认DNS已全球生效(可用ping命令测试)。

Q2: 如何给某个虚拟主机单独启用HTTPS?

解答

以Apache为例:

  1. 申请SSL证书(推荐Let’s Encrypt):sudo snap install core; sudo snap refresh; sudo snap install --classic certbot
  2. 执行sudo certbot --apache -d siteA.example.com
  3. Nginx用户则使用--nginx参数,自动修改配置文件添加443端口监听和`

0