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

添加虚拟主机怎么弄出来

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

前期准备

核心概念

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

必备条件

已注册并完成DNS解析的域名
服务器操作系统(推荐CentOS/Ubuntu/Debian)
Web服务器软件(Apache/Nginx/IIS/LiteSpeed等)
ROOT或sudo权限账户


主流方案实操指南

▶️ 方案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

关键配置段

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

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