apache基于ip地址的虚拟主机是指为每个网站分配独立ip,通过请求ip决定响应站点;需绑定多个ip、创建对应根目录、配置virtualhost块并监听指定ip:端口,最后语法检查并重启服务。

Apache 基于 IP 地址的虚拟主机,是指服务器为每个网站分配一个独立的 IP 地址,通过请求到达的 IP 来决定响应哪个站点。这种方式不依赖 Host 请求头,兼容性高,适合需要 SSL(尤其旧客户端无 SNI 支持)或严格网络隔离的场景。
准备多个可用 IP 地址
服务器必须实际绑定至少两个不同 IP 地址,同一网卡可配置多个别名 IP:
- Linux(命令行临时添加):sudo ip addr add 192.168.1.100/24 dev eth0 和 sudo ip addr add 192.168.1.101/24 dev eth0
- Linux(永久生效):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:0 等子接口配置文件,设置 IPADDR=192.168.1.100、PREFIX=24
- Windows:在“网络连接”→“属性”→“IPv4”中点击“高级”,手动添加多个 IP
- 验证是否生效:ip addr show(Linux)或 ipconfig(Windows),确认列出全部目标 IP
创建独立网站目录与内容
每个 IP 对应一个站点根目录,需确保 Apache 进程有读取权限:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 新建目录,例如:sudo mkdir -p /var/www/site100 /var/www/site101
- 写入测试页:echo "
Site on 192.168.1.100
" > /var/www/site100/index.html - 设置权限(Linux):sudo chown -R $USER:www-data /var/www/site100;sudo chmod -R 755 /var/www/site100
- 无需域名解析,后续直接用 IP 访问即可验证
配置 VirtualHost 块并启用监听
在 Apache 主配置或独立 vhost 文件(如 /etc/httpd/conf.d/ip-vhosts.conf)中添加:
- 确保已声明监听对应端口:Listen 192.168.1.100:80 和 Listen 192.168.1.101:80(可选,但推荐显式指定)
- 每个
必须精确匹配一个 IP+端口,例如:
DocumentRoot "/var/www/site100"
ServerName site100.local
Require all granted
- 多个 IP 配置之间不能重复,ServerName 不影响路由逻辑,仅用于日志和管理
检查并重启服务
完成配置后务必验证语法并重载服务:
- 检查配置有效性:sudo httpd -t(CentOS/RHEL)或 sudo apache2ctl -t(Debian/Ubuntu),输出 Syntax OK 才继续
- 重载服务:sudo systemctl reload httpd 或 sudo systemctl restart apache2
- 本地测试:浏览器访问 http://192.168.1.100 和 http://192.168.1.101,应分别显示对应页面
- 若返回 403,请检查目录权限与 Require all granted 是否写入
块内










