apache 2.4统一使用require指令替代已弃用的order/allow/deny语法,支持ip、域名、ipv6及组合逻辑;需确认版本、启用mod_authz_host与mod_authz_core,并通过allowoverride开启.htaccess支持。

Apache 访问控制配置方式取决于你用的是 2.2 还是 2.4 版本,核心区别在于指令语法。2.4 版本已弃用 Order/Allow/Deny,统一使用 Require 指令,更清晰、更安全。
确认 Apache 版本
先执行命令查看版本:
httpd -v(RHEL/CentOS)或 apache2ctl -v(Debian/Ubuntu)
若显示 Apache/2.4.x,请用 Require 方式;若为 2.2.x,旧语法仍可用,但建议升级或兼容配置。
基于 IP 或网段限制访问
在 <directory></directory>、<location></location> 或 .htaccess 中写入:
-
Require ip 192.168.1.100—— 允许单个 IPv4 地址 -
Require ip 10.0.0.0/8 172.16.0.0/12—— 允许多个 CIDR 网段(空格分隔) -
Require ip 2001:db8::/32—— 支持 IPv6 网段 -
Require local—— 仅允许本机(127.0.0.1 和 ::1)
如需“只允许某几台机器,其余全拒”,开头加一句 Require all denied,再逐条 Require ip … 即可。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
启用 .htaccess 文件支持
若想用目录下的 .htaccess 控制访问,主配置中对应目录必须开启覆盖权限:
- 找到类似
<directory></directory>的区块 - 把
AllowOverride None改为AllowOverride All(或至少AuthConfig Limit) - 确保
AccessFileName .htaccess未被注释(默认就是) - 重启 Apache:
systemctl restart httpd或systemctl restart apache2
结合用户认证做双重控制
先用 htpasswd 创建密码文件:
htpasswd -c /etc/httpd/.htpasswd admin(首次创建)
然后在配置中加入:
<directory><br> AuthType Basic<br> AuthName "Admin Area"<br> AuthUserFile /etc/httpd/.htpasswd<br> Require valid-user<br></directory>
这样既要求 IP 在白名单内(可叠加 Require ip …),又要求输入正确用户名密码。










