在已有的云主机(VPS/ECS)上,创建多个相互隔离的网站运行环境(即虚拟空间/虚拟主机),这通常有两种主流做法:

1、使用建站面板(可视化、适合新手,支持多站点管理)
2、手动配置 Web 服务器(更灵活、资源占用低,适合有 Linux 基础者)
另外需要说明:云主机本身就是一个“虚拟服务器”,你要做的不是“给云主机开虚拟空间”,而是在这台主机上为多个网站分配目录、数据库和域名,让它们像独立的“空间”一样运行。
下面分别给出具体步骤。
最省心的方法是安装宝塔面板(BT Panel)或1Panel(开源、安全),以宝塔为例:

1、登录云主机(SSH 连接,如使用 PuTTY 或终端)
2、安装面板(以 CentOS / Ubuntu 为例,选其一):
# CentOS
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_lts.sh && bash install.sh
# Ubuntu
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh安装完成后会显示面板地址、用户名和密码(务必保存)。
3、登录面板(浏览器打开http://你的云主机IP:8888)
4、创建虚拟空间(网站):

- 点击左侧网站 →添加站点
- 输入你的域名(如example1.com,或临时用 IP 测试)
- 选择 PHP 版本、创建数据库(可选)
- 提交后系统会自动生成网站根目录(如/www/wwwroot/example1.com)、nginx/Apache 配置文件和数据库
5、上传网站文件:通过面板自带的文件管理器或 FTP,将你的网站代码放入该目录。
6、绑定域名:在域名 DNS 服务商处将域名 A 记录指向你的云主机 IP。
重复以上步骤,可以创建 N 个独立站点,即“虚拟空间”。
方案二:手动配置 Nginx/Apache(适合有 Linux 基础)
假设你已安装了 Nginx(或 Apache),且系统是 Ubuntu/CentOS。
以 Nginx 为例:
1、创建网站目录:
sudo mkdir -p /var/www/website1
sudo chown -R www-data:www-data /var/www/website12、创建 Nginx 虚拟主机配置文件:
sudo nano /etc/nginx/sites-available/website1写入以下内容(修改域名和目录路径):
server {
listen 80;
server_name website1.com www.website1.com; # 替换为你的域名
root /var/www/website1;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
# 如果使用 PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据 PHP 版本调整
}
}3、启用该站点:
sudo ln -s /etc/nginx/sites-available/website1 /etc/nginx/sites-enabled/
sudo nginx -t # 检查配置语法
sudo systemctl reload nginx # 重载服务4、重复步骤 1-3 创建 website2、website3……
这样每个域名/目录就变成了一个独立的“虚拟空间”,共享同一台云主机的 CPU、内存和网络。
如果你希望每个“虚拟空间”有更严格的资源限制(CPU、内存、磁盘),可以用 Docker 运行多个容器,每个容器一个网站。
1、 安装 Docker
2、 拉取一个 LAMP/LEMP 镜像(或自己构建镜像)
3、 为每个网站启动一个容器:
docker run -d --name site1 -p 8081:80 -v /data/site1:/var/www/html your_image
docker run -d --name site2 -p 8082:80 -v /data/site2:/var/www/html your_image然后通过不同的端口或反向代理(如 Nginx Proxy Manager)绑定不同域名。
这种方式资源占用稍高,但完全隔离,适合作为“虚拟机”级别的虚拟空间。
1、IP 与域名:云主机通常只有一个公网 IP,多个站点依靠域名 来区分(通过 Nginx/Apache 的server_name 或反向代理),如果你没有域名,可以通过不同端口访问(如IP:8081、IP:8082),但这不叫“虚拟空间”,而是端口映射。
2、资源限制:默认所有站点共享主机资源,若要限制某个站点的 CPU/内存,可以使用 Docker(方案三)或 Linux cgroups。
3、安全隔离:如果你的虚拟空间是给别人用的(比如出售空间),需要更严格的安全隔离(如 chroot、open_basedir、用户权限),不建议用方案二给不信任的用户开空间——他们可以跨目录读取其他站点文件,此时应使用 Docker 或真正的虚拟化(如 KVM 开子 VPS)。
4、如果需要 MySQL 数据库:每个虚拟空间可以创建独立的数据库和用户(面板会自动做,手动需CREATE DATABASE 和GRANT)。
| 你的需求 | 推荐做法 |
| 新手,想要快速管理多个网站 | 宝塔面板 → 添加站点 |
| 有 Linux 运维基础,追求低资源占用 | 手动配置 Nginx 虚拟主机 |
| 需要严格隔离(给多用户开空间) | Docker 容器 或 KVM 子虚拟机 |
| 只是扩大磁盘空间(非“虚拟空间”) | 扩容云主机磁盘(控制台操作) |
如果这不是你想要的“虚拟空间”(比如你是想再开一台独立的“虚拟服务器”),请告诉我更具体的场景,我帮你补充更精确的方案。
文章摘自:https://idc.huochengrm.cn/zj/25568.html
评论