Ubuntu 20.04无VirtualHost配置时Apache2仍返回默认页面问题
问题原因
Ubuntu 官方源安装的 Apache2 存在全局核心配置,优先级高于站点级的虚拟主机配置:
- 当未配置任何虚拟主机时,Apache 会自动回退使用
/etc/apache2/apache2.conf中默认定义的全局DocumentRoot路径,默认值为/var/www/html,只要该路径下存在index.html等默认索引文件,就会返回对应内容 other_vhost_access.log是 Apache 全局默认的访问日志,只要收到没有匹配到虚拟主机的请求,就会写入该日志,和是否配置虚拟主机无关- 你执行的
a2dissite仅禁用了站点级的虚拟主机配置,没有修改全局核心配置,因此 Apache 仍然会基于全局配置提供服务
解决方法
如果需要让 Apache 在无虚拟主机配置时不提供任何服务,可以选择以下任意一种操作:
- 修改全局
DocumentRoot路径为不存在的目录,同时关闭全局目录访问权限:
编辑/etc/apache2/apache2.conf,找到DocumentRoot配置项(如果不存在则新增),修改为:
DocumentRoot /nonexistent <Directory /nonexistent> Require all denied </Directory>
修改完成后执行 systemctl restart apache2 生效
2. 直接修改全局监听规则,关闭未绑定虚拟主机的端口监听:编辑 /etc/apache2/ports.conf,注释掉不需要的 Listen 配置项,重启服务生效
3. 删除 /var/www/html 下的默认索引文件,同时调整该目录权限为 Apache 进程无读取权限
内容的提问来源于stack exchange,提问作者Endi
相关产品推荐
相关产品推荐

