我想根据两个标准限制对给定站点的访问:
- 客户端的 IP 地址(即是否在允许的范围内);
- 摘要式身份验证。
但是,对于每个 IP 范围,都会有一个不同的用户名/密码组合列表(我根据源 IP 来区分客户端,然后在此基础上要求进行身份验证)。每个来自有效 IP 并为该 IP 提供匹配的用户名/密码组合(或在本例中为摘要)的客户端都将连接到相同的主机名,并查看从相同文档根目录提供的相同站点。
如果可能的话,我想将此配置保留在 Apache 配置中,以避免在我的应用程序中重新发明轮子,并且具有如下内容:
if client_ip = 1.1.1.1
digest_file = /etc/digests/customer1
elseif client_ip = 2.2.2.2
digest_file = /etc/digests/customer2
else
deny access
是否可以在单个虚拟主机内执行此操作?我在 Debian 上运行 Apache 2.2.9,并且可以根据需要加载模块。
我也考虑过为每个客户使用不同的主机名和虚拟主机容器,并在每个容器中放置不同的 IP 范围和摘要文件引用,但不幸的是,这个站点将通过 HTTPS 运行,我怀疑获取所有额外的 IP 在成本方面会过高。