Apache HTTP Server 怎么通过 IP 虚拟主机隔离不同用户的站点

酷静酱_1479

酷静酱_1479

2026-10-20

950人浏览

原创

apache基于ip虚拟主机的核心是每个用户独占一个ip并单独配置块,通过系统绑定多ip、按ip拆分独立配置文件、目录路径含ip标识、权限设为750且禁用followsymlinks、启用后执行apache2ctl -s验证监听,实现网络层强隔离。

apache 通过 ip 虚拟主机隔离不同用户的站点,核心是让每个用户独占一个公网或内网 ip 地址,并为该 ip 单独配置 <virtualhost></virtualhost> 块。这种方式天然避免域名冲突、ssl 绑定干扰和请求路由歧义,适合多租户、高隔离要求或需独立 ssl 证书的场景。

一、前提:确保服务器绑定多个 IP 地址

IP 虚拟主机依赖真实网络层区分,所以必须先在系统层面为网卡配置多个 IP:

  • Linux(如 Ubuntu/Rocky)执行:ip addr add 192.168.1.10/24 dev eth0(临时);永久配置需写入 /etc/netplan/ 或 /etc/sysconfig/network-scripts/ifcfg-eth0:0
  • 确认生效:ip addr show 应列出所有目标 IP,且 Apache 启动时能监听它们
  • 防火墙(如 firewalld/ufw)需放行对应 IP 的 80/443 端口,不能只放行 0.0.0.0

二、为每个 IP 创建独立虚拟主机配置

不推荐混写在同一个文件里,应按 IP 拆分为单独配置(便于启用/禁用与权限审计):

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载
  • 文件路径建议:/etc/apache2/sites-available/ip-vhost-192.168.1.10.conf(Debian/Ubuntu)或 /etc/httpd/conf.d/vhost-192.168.1.10.conf(RHEL/Rocky)
  • 配置内容严格限定 IP+端口,不使用 * 或 _default_:
    <virtualhost><br>
      ServerName 192.168.1.10<br>
      DocumentRoot /srv/www/192.168.1.10/<br>
      <directory><br>
        Require all granted<br>
        Options -Indexes -FollowSymLinks<br>
        AllowOverride None<br>
      </directory><br>
      ErrorLog ${APACHE_LOG_DIR}/192.168.1.10_error.log<br>
      CustomLog ${APACHE_LOG_DIR}/192.168.1.10_access.log combined<br></virtualhost>
  • HTTPS 配置同理,但需额外指定 SSLCertificateFile 和 SSLCertificateKeyFile,每个 IP 可配不同证书

三、目录与权限强制隔离

仅靠配置隔离不够,必须从文件系统层切断跨站访问可能:

  • 根目录路径含 IP 标识,例如:/srv/www/192.168.1.10/、/srv/www/192.168.1.11/,禁止共用 /var/www/html
  • 主目录属主设为 root:www-data(Debian)或 root:apache(RHEL),权限 750 —— Web 进程可读不可写,防止被篡改配置或上传恶意脚本
  • 若用户需上传(如 CMS 媒体库),仅对子目录(如 /uploads/)设为 www-data:www-data 且权限 750,并启用 setgid 保证新建文件继承组
  • 全局禁用 FollowSymLinks,除非明确需要且已验证符号链接目标在本 IP 目录内

四、启用与验证要点

配置后不是简单重启就完事,关键检查项必须做:

  • 启用配置:a2ensite ip-vhost-192.168.1.10.conf(Debian)或确保 conf.d/ 下文件被自动加载(RHEL)
  • 语法检查:apache2ctl -t 或 httpd -t,必须返回 Syntax OK
  • 查看实际加载的虚拟主机:apache2ctl -S(Debian)或 httpd -S(RHEL),输出中应清晰列出每个 IP 对应的 192.168.1.10:80 条目及 DocumentRoot
  • 测试访问:直接用浏览器访问 http://192.168.1.10,确认返回对应站点内容;同时尝试访问 http://192.168.1.11,确保不跳转、不显示默认页

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3032

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2756

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5152

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习