上一篇
apache的访问控制和虚拟主机的配置
- 虚拟主机
- 2025-07-13
- 7
ache访问控制通过 Order、 Allow和 Deny指令实现,虚拟主机配置则使用 VirtualHost指令,指定域名、端口及文档根目录,支持多站点独立运行
Apache的访问控制
| 指令类型 | 配置示例 | 说明 |
|---|---|---|
| 目录访问控制 | <Directory "/var/www/html/"> Order Allow,Deny Deny from 192.168.1.12 Allow from all </Directory> | 拒绝特定IP(如168.1.12)访问,允许其他所有IP访问。Order Allow,Deny表示先执行允许规则,后执行拒绝规则。 |
| 文件访问控制 | <Files "hello.html"> Order Deny,Allow Deny from all </Files> | 拒绝所有用户访问目录下的hello.html文件。Order Deny,Allow表示先执行拒绝规则,后执行允许规则。 |
| URL路径控制 | <Location /admin> Deny from all </Location> | 拒绝所有用户访问/admin路径,支持通配符或正则表达式(如<Location /admin/>)。 |
| 动态替换文档根目录 | <VirtualHost :80> ServerName .aaa.com VirtualDocumentRoot /var/www/cct/home/%1 </VirtualHost> | 泛域名解析,%1表示域名第一部分(如test.aaa.com对应/var/www/cct/home/test),需配合<Directory>设置权限。 |
Apache的虚拟主机配置
| 配置方式 | 关键指令 | 示例配置 | 说明 |
|---|---|---|---|
| 基于IP | VirtualHost | apache <VirtualHost 192.168.142.2:80> ServerAdmin zhaoyp1985@163.com DocumentRoot "/var/www/web1" ServerName www.aaa.com </VirtualHost> | 每个虚拟主机绑定不同IP地址,适用于多IP服务器,需确保服务器有多个IP地址。 |
| 基于端口 | Listen + VirtualHost | apache Listen 80 Listen 8080 <VirtualHost :80> ServerName www.aaa.com DocumentRoot /var/www/web1 </VirtualHost> <VirtualHost :8080> ServerName www.bbb.com DocumentRoot /var/www/web2 </VirtualHost> | 通过不同端口区分网站,用户需手动指定端口(如http://ip:8080)。 | |
| 基于域名 | NameVirtualHost + ServerName | apache NameVirtualHost :80 <VirtualHost :80> ServerName www.aaa.com DocumentRoot /var/www/web1 </VirtualHost> <VirtualHost :80> ServerName www.bbb.com DocumentRoot /var/www/web2 </VirtualHost> | 最常用方式,依赖DNS解析。ServerName指定主域名,ServerAlias可添加别名(如www.example.com)。 |
相关问题与解答
-
如何检查虚拟主机配置是否生效?


- 检查步骤:
- 查看Apache错误日志(通常位于/var/log/apache2/error.log或/var/log/httpd/error_log)。
- 使用ping或在线工具验证域名是否解析到服务器IP。
- 确保防火墙开放80/443端口(如sudo ufw allow 80/tcp)。
- 禁用默认站点(如sudo a2dissite 000-default.conf)避免冲突。
- 在浏览器访问域名,或使用curl -I http://yourdomain.com测试响应。
- 检查步骤:
-
如何限制特定IP访问某个虚拟主机?

- 配置方法:
在虚拟主机的<Directory>块中添加Allow/Deny规则,仅允许168.1.0/24网段访问: <Directory "/var/www/web1"> AllowOverride All Order Deny,Allow Allow from 192.168.1. Deny from all </Directory>
- 说明:
- Order Deny,Allow表示默认拒绝所有请求,仅允许符合规则的IP。
- 若需允许多个网段,可追加多条Allow from指令(如Allow from 192.168.2.0/24)。
- 配置方法: