以下为虚拟主机安装与创建实验报告的详细内容,包含实验目的、环境配置、操作步骤、测试验证及扩展知识。

一、实验目的
掌握在Apache/Nginx服务器上配置基于域名/端口/IP的虚拟主机,实现单服务器托管多个网站。
二、实验环境
| 项目 | 环境值 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS | 推荐使用Linux发行版 |
| Web服务器 | Apache 2.4.57 | 或Nginx 1.18.0 |
| 测试域名 | site1.test / site2.test | 需配置本地hosts解析 |
| 网站根目录 | /var/www/site1 /site2 | 需提前创建目录结构 |
三、实验步骤(以Apache为例)
1. 安装Apache服务
执行命令:sudo apt update && sudo apt install apache2
2. 创建网站目录
sudo mkdir -p /var/www/site1/public_html
sudo mkdir -p /var/www/site2/public_html
3. 配置虚拟主机文件
在/etc/apache2/sites-available/目录创建两个配置文件:
site1.conf配置示例:
<VirtualHost *:80>
ServerName site1.test
DocumentRoot /var/www/site1/public_html
</VirtualHost>
4. 启用站点并重载服务
sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl restart apache2
四、测试验证
| 测试方法 | 预期结果 |
|---|---|
| 修改本地hosts文件: 127.0.0.1 site1.test site2.test |
域名正确解析到本地 |
| 在浏览器访问: http://site1.test |
显示site1的index.html内容 |
| 使用curl测试: curl -I http://site2.test |
返回HTTP 200状态码 |
五、常见问题及解决方案
• 403 Forbidden错误:检查目录权限(推荐设置为755)
• 站点未生效:确认已执行a2ensite并重启Apache
• 端口冲突:通过netstat -tuln检查80端口占用
六、扩展知识:虚拟主机类型对比
| 类型 | 配置依据 | 适用场景 | 资源消耗 |
|---|---|---|---|
| 基于IP | 服务器多IP地址 | SSL证书独立绑定 | 高(需多个IP) |
| 基于端口 | 不同TCP端口号 | 临时测试环境 | 低 |
| 基于域名 | HTTP Host头 | 商业托管服务 | 最低 |
七、实验结论
通过配置虚拟主机,成功实现了单台服务器托管多个独立网站。需重点关注目录权限、配置文件语法和DNS解析三个核心环节。进阶应用可结合Let's Encrypt证书配置HTTPS虚拟主机。

查看详情

查看详情