Apache VirtualHost 配置中怎么配置默认虚拟主机 DefaultVirtualHost

舞夢輝影

舞夢輝影

2026-07-28

1036人浏览

原创

默认虚拟主机是配置文件中第一个满足监听条件(如*:80)且无匹配servername的virtualhost块;它按从上到下顺序生效,用于处理未匹配域名的请求,并需置于httpd-vhosts.conf顶部以确保兜底安全。

apache virtualhost 配置中怎么配置默认虚拟主机 defaultvirtualhost

默认虚拟主机就是当请求的域名在所有 <virtualhost></virtualhost> 配置中都找不到匹配项时,Apache 会交给它处理的那个主机。它的核心规则很简单:排在最前面、且监听条件最宽泛的那个 <virtualhost></virtualhost> 块,就是默认虚拟主机

默认虚拟主机怎么确定?

Apache 不靠特殊标签或关键字标记“默认”,而是靠顺序和匹配逻辑:

  • 所有 <virtualhost></virtualhost><virtualhost _default_:80></virtualhost> 都属于“通配型”监听,能响应任意 IP 上对该端口的请求;
  • 当客户端发起请求(比如访问 abc.com),Apache 会按配置文件从上到下扫描所有 <virtualhost></virtualhost> 块;
  • 一旦发现某个块的 ServerNameServerAlias 与请求头中的 Host 字段完全匹配,就用它;
  • 如果全部扫完都没匹配上,就用第一个满足监听条件(如 *:80)的块——也就是第一个 <virtualhost></virtualhost>

如何显式设置一个安全的默认主机

推荐把真正想作为兜底的虚拟主机放在 httpd-vhosts.conf 的最顶部,并明确标注用途:

Apache 2.4.62
Apache 2.4.62

PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。

下载
<virtualhost>
    ServerName default.local
    DocumentRoot "/var/www/default"
    <directory>
        Require all granted
    </directory>
    ErrorLog "logs/default-error.log"
    CustomLog "logs/default-access.log" common
</virtualhost><virtualhost>
    ServerName site-a.com
    ServerAlias www.site-a.com
    DocumentRoot "/var/www/site-a"
    ...
</virtualhost><virtualhost>
    ServerName site-b.com
    DocumentRoot "/var/www/site-b"
    ...
</virtualhost>

这样即使有人直接用 IP 访问,或输错域名,也会落到 /var/www/default,不会意外暴露其他站点内容。

常见误区提醒

以下做法容易导致默认行为异常:

  • 主配置 httpd.conf 中仍保留未注释的 DocumentRootServerName:它们可能和第一个虚拟主机冲突,引发 403 或跳转异常;
  • 用了 <virtualhost></virtualhost> 这类具体 IP 的块,但没配对应 NameVirtualHost 192.168.1.100:80(Apache 2.2 需要,2.4+ 已自动处理);
  • 多个 <virtualhost></virtualhost> 块里 ServerName 写了相同值,Apache 只认第一个,其余被忽略;
  • 忘记启用 httpd-vhosts.conf:确认主配置中有 Include conf/extra/httpd-vhosts.conf 且未被注释。

验证是否生效

改完配置后执行:

  • apachectl -thttpd -t 确保语法正确;
  • 重启服务:systemctl restart apache2(Debian/Ubuntu)或 systemctl restart httpd(RHEL/CentOS);
  • 在本地 /etc/hosts(Linux/macOS)或 C:\Windows\System32\drivers\etc\hosts(Windows)中加一行:127.0.0.1 fake-domain.test
  • 浏览器访问 http://fake-domain.test,看是否加载第一个 <virtualhost></virtualhost> 的页面。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

618

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1216

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

429

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1032

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1849

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程