多个ip地址的虚拟主机怎么设置

在服务器网卡添加多IP;编辑Web服务器配置文件,为每个IP创建独立虚拟主机块,定义文档根目录、日志路径等;保存后

核心概念

定义:一台物理服务器拥有多个公网IP时,可通过「基于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,取消以下行的注释:

多个ip地址的虚拟主机怎么设置

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)

若出现权限拒绝错误,执行:

多个ip地址的虚拟主机怎么设置

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月11日 02:07
下一篇 2025年8月11日 02:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN