上一篇
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)。
- 配置方法:
