Linux下配置Apache基于IP的虚拟主机,本质是让同一台服务器响应多个不同IP地址的请求,并将每个IP映射到独立网站目录;需绑定多个IP、为各IP创建专属目录与VirtualHost块(明确指定IP:端口,禁用通配符)、设置权限并重启服务验证。

Linux 下配置 Apache 基于 IP 的虚拟主机(IP-based Virtual Host),本质是让同一台服务器响应多个不同 IP 地址的请求,并将每个 IP 映射到独立网站目录。它不依赖域名解析或 Host 头,适合测试多站点隔离、内网服务分发或需严格网络层分离的场景。
准备多个可用 IP 地址
服务器必须实际绑定至少两个 IPv4 地址。常见做法是添加“别名 IP”(secondary IP)到主网卡:
- 临时添加(重启失效):
sudo ip addr add 192.168.1.101/24 dev eth0 - 永久添加(CentOS/RHEL):编辑
/etc/sysconfig/network-scripts/ifcfg-eth0:0,写入DEVICE=eth0:0IPADDR=192.168.1.101NETMASK=255.255.255.0ONBOOT=yes
然后执行sudo systemctl restart network - 验证是否生效:
ip addr show eth0 | grep inet应看到主 IP 和新增 IP 同时存在
创建独立网站目录与测试页
为每个 IP 分配专属根目录,避免内容混用:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 新建目录:
sudo mkdir -p /var/www/site-ip1 /var/www/site-ip2 - 写入区分性首页:
echo "<h1>Serving from 192.168.1.100</h1>" | sudo tee /var/www/site-ip1/index.htmlecho "<h1>Serving from 192.168.1.101</h1>" | sudo tee /var/www/site-ip2/index.html - 设置权限(确保 Apache 用户可读):
sudo chown -R $USER:www-data /var/www/site-*(Debian/Ubuntu)或sudo chown -R $USER:apache /var/www/site-*(CentOS/RHEL)
配置 Apache 虚拟主机块
编辑主配置或虚拟主机专用文件(如 /etc/httpd/conf/httpd.conf 或 /etc/apache2/sites-available/000-default.conf),写入明确绑定 IP 的 <VirtualHost> 块:
- 每个块指定唯一 IP 和端口,例如:
<VirtualHost 192.168.1.100:80>DocumentRoot "/var/www/site-ip1"<Directory "/var/www/site-ip1">Require all granted</Directory></VirtualHost> - 第二个块同理,把 IP 换成
192.168.1.101,路径换成/var/www/site-ip2 - 注意:不要使用通配符 *,必须写死 IP;无需 ServerName,因为匹配依据是 TCP 层目标地址,不是 HTTP Host 头
启用并验证服务
完成配置后,检查语法并重启 Apache:
- 语法检查:
sudo apachectl configtest或sudo apache2ctl configtest(返回Syntax OK才继续) - 重启服务:
sudo systemctl restart httpd(RHEL/CentOS)或sudo systemctl restart apache2(Debian/Ubuntu) - 从客户机访问:
浏览器打开http://192.168.1.100→ 显示 “Serving from 192.168.1.100”
打开http://192.168.1.101→ 显示另一条内容

















