上一篇                     
               
			  apache的访问控制和虚拟主机的配置
- 虚拟主机
- 2025-07-13
- 3293
 ache访问控制通过
 
 
Order、
 Allow和
 Deny指令实现,虚拟主机配置则使用
 VirtualHost指令,指定域名、端口及文档根目录,支持多站点独立运行
Apache的访问控制
| 指令类型 | 配置示例 | 说明 | 
|---|---|---|
| 目录访问控制 | <Directory "/var/www/html/">Order Allow,DenyDeny from 192.168.1.12Allow from all</Directory> | 拒绝特定IP(如 168.1.12)访问,允许其他所有IP访问。Order Allow,Deny表示先执行允许规则,后执行拒绝规则。 | 
| 文件访问控制 | <Files "hello.html">Order Deny,AllowDeny from all</Files> | 拒绝所有用户访问目录下的 hello.html文件。Order Deny,Allow表示先执行拒绝规则,后执行允许规则。 | 
| URL路径控制 | <Location /admin>Deny from all</Location> | 拒绝所有用户访问 /admin路径,支持通配符或正则表达式(如<Location /admin/>)。 | 
| 动态替换文档根目录 | <VirtualHost :80>ServerName .aaa.comVirtualDocumentRoot /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测试响应。
 
- 查看Apache错误日志(通常位于
 
- 检查步骤: 
    
-  如何限制特定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)。
 
 
- 配置方法:
 
  
			