核心概念
✅ 定义:一台物理服务器拥有多个公网IP时,可通过「基于IP的虚拟主机」技术实现多站点隔离,每个站点独占一个唯一IP+端口组合。
⚠️ 关键前提:必须提前向运营商申请并绑定足够数量的合法公网IP至服务器网卡。
实施前准备清单
项目 | 要求 |
---|---|
操作系统 | Linux(推荐CentOS/Ubuntu);Windows Server(需调整策略) |
网卡硬件能力 | 支持多IP绑定(绝大多数云服务器默认支持) |
防火墙规则 | 放行所有业务所需端口(HTTP:80/HTTPS:443等) |
Web服务器类型 | Apache / Nginx / IIS(本文以Apache为例) |
域名解析 | 各域名需分别A记录指向对应IP |
详细操作步骤
添加额外IP至网卡
# CentOS/RHEL系统 nmcli connection modify "eth0" +ipv4.addresses <新增IP>/<子网掩码> # 示例:新增IP 192.168.1.100/24 nmcli connection modify "eth0" +ipv4.addresses 192.168.1.100/24 systemctl restart NetworkManager # 应用变更 # Ubuntu/Debian系统 echo "auto eth0:0" >> /etc/network/interfaces echo "iface eth0:0 inet static" >> /etc/network/interfaces echo " address 192.168.1.100" >> /etc/network/interfaces echo " netmask 255.255.255.0" >> /etc/network/interfaces ifdown eth0 && ifup eth0:0
📌 验证命令:ip a
查看新IP是否生效
配置Apache虚拟主机
编辑主配置文件 /etc/httpd/conf/httpd.conf
,取消以下行的注释:
LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule rewrite_module modules/mod_rewrite.so
新建虚拟主机配置文件 /etc/httpd/conf.d/vhosts.conf
:
<VirtualHost 192.168.1.100:80> # 第一个站点IP ServerAdmin admin@site1.com DocumentRoot /var/www/site1 ServerName site1.example.com ErrorLog /var/log/httpd/site1_error.log CustomLog /var/log/httpd/site1_access.log combined </VirtualHost> <VirtualHost 192.168.1.101:80> # 第二个站点IP ServerAdmin admin@site2.com DocumentRoot /var/www/site2 ServerName site2.example.com ErrorLog /var/log/httpd/site2_error.log CustomLog /var/log/httpd/site2_access.log combined </VirtualHost>
🔄 重启服务:systemctl restart httpd
SELinux权限处理(仅限Linux)
若出现权限拒绝错误,执行:
chcon -R -t httpd_sys_content_t /var/www/site1/ chcon -R -t httpd_sys_content_t /var/www/site2/
典型故障排查表
现象 | 可能原因 | 解决方案 |
---|---|---|
浏览器报”无法连接” | 防火墙未放行端口 | firewall-cmd --add-port=80/tcp |
显示默认Apache测试页 | 文档根目录路径错误 | 检查DocumentRoot 路径及权限 |
跨站跳转异常 | Host头未正确匹配 | 核对ServerName 与访问域名一致性 |
SSL证书警告 | 证书绑定到错误IP | 重新生成SAN证书包含所有业务域名 |
相关问题与解答
Q1: 如果只有一个公网IP怎么办?
💡 答:可采用「基于域名的虚拟主机」(SNI技术),通过TLS扩展实现单IP承载多HTTPS站点,需满足:① Web服务器支持SNI(Nginx>=0.5.29,Apache≥2.4);② 使用通配符证书或多域名证书。
Q2: Windows Server如何实现类似功能?
💻 答:通过IIS管理器操作路径:服务器管理器→角色和服务→Web服务器(IIS)→绑定...
→ 点击”添加”输入新IP+端口 → 选择对应的应用程序池和物理路径,注意需同步修改注册表中的`HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParametersCor
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/101418.html