首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在禁用了000-default.conf之后,Apache仍然服务于默认的网页。

即使在禁用了000-default.conf之后,Apache仍然服务于默认的网页。
EN

Ask Ubuntu用户
提问于 2023-02-09 18:52:07
回答 1查看 172关注 0票数 0

我目前正在使用AWS EC2 (ubuntu20.04)机器。我安装了apache2,并在/var/www/myapp/myapp.html和/var/www/mynew/mynew.html配置了两个新站点。我在/etc/apache/sites available/myapp.conf位置创建了一个新的虚拟主机文件。我已经添加了两个虚拟主机条目对应于上述网站。启用myapp.conf文件(a2ensite myapp.conf)并禁用默认虚拟主机文件(000-default.conf)。作为一个实验,我为虚拟主机指令设置了错误的IP:端口组合,这样我的请求就不会匹配任何虚拟主机。当我试图访问服务器时,它将服务于默认的网页。但我期待着第一个虚拟主机的内容。

如果没有与请求的IP:端口匹配的虚拟主机,那么是否有人知道为什么会显示禁用的默认网页?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2023-02-10 18:43:31

最后,我找到了我的问题的答案。

我做了更多的故障排除,并尝试了如下所述的其他场景,

  1. 确保"ports.conf“文件配置正确。
  2. 检查了apache日志,但是tbh没有找到任何有用的信息。
  3. 作为最后的检查,我删除了默认的虚拟主机配置文件(remanmednmapp-default.conf) ->,但是即使在删除该文件并重新启动服务器之后,apache也在为相同的默认网页服务。这使我认为,除了这个默认的virtualHost文件之外,还有一些不同的配置存在,并且将apache重定向到相同的默认网页。

我的发现:

  1. 运行sudo命令,以确定虚拟主机实际加载的位置/方式
  2. 从命令的输出中,我得到了“主DocumentRoot:"/var/www/html”

我搜索了这个,发现了下面的细节。

顾名思义,当虚拟主机本身没有指定时,它就是默认的DocumentRoot值。因此,如果请求与缺少DocumentRoot指令以满足请求的虚拟主机块匹配,则Apache将使用默认的或主文档根来服务请求。

Apache默认文档根在两处指定,

  1. httpd的编译时或运行时选项。
  2. 主服务器配置,它是在虚拟主机块之外指定的配置。任何虚拟主机配置基本上都会从主服务器配置中获取默认值(在我的示例中,这个值在主配置文件中的任何地方都没有提到)。ie,apache2.conf,因此必须在运行时设置它)

注意:主服务器配置中指定的文档根值将覆盖从编译时或运行时继承的文件根值。

换句话说,我的主DocumentRoot未配置,默认值被使用,直到我在全局配置文件中显式地定义了它。

请参阅此链接以获得更多信息:

https://codingshower.com/apache-find-default-or-main-documentroot/#:~:text=The%20default%20or%20main%20document%20root%20acts%20as%20the%20default,和%20主机%20服务器%20配置

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1454268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档