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
测试响应。
- 查看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
)。
- 配置方法:
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/59323.html