首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的子域的虚拟主机文件没有被拾取。

问我的子域的虚拟主机文件没有被拾取。
EN

Server Fault用户
提问于 2018-04-28 16:32:40
回答 1查看 292关注 0票数 0

所以我有一个网站运行在Ubuntu上的一个台灯堆上。

我有两个虚拟主机文件..。

000-拖欠债务f:

代码语言:javascript
复制
    ServerName www.example.co.uk
        ServerAdmin admin@example.co.uk
        DocumentRoot /var/www/html/

        ErrorLog ${APACHE_LOG_DIR}/site-a_error.log
        CustomLog ${APACHE_LOG_DIR}/site-a_access.log combined

和moodle.example.co.uk.conf:

代码语言:javascript
复制
    ServerName moodle.example.co.uk
        ServerAdmin admin@example.co.uk
        DocumentRoot /var/www/moodle.example.co.uk/public_html

        ErrorLog ${APACHE_LOG_DIR}/site-b_error.log
        CustomLog ${APACHE_LOG_DIR}/site-b_access.log combined

如果我去www.example.co.uk,我就会看到主页。完全和预期的一样。

但是,如果我转到moodle.example.co.uk,我仍然会看到主页,而不是存储在指定的DocumentRoot中的页面。

如果我向Moodle添加了一个ServerAlias指令,那么它可以正常工作。

为什么ServerName指令不起作用?

编辑:一个更新。如果我禁用所有虚拟主机,那么我的网站仍然服务。这似乎是非常奇怪的行为。

访问被登录到other_vhosts_access.log中,但是我找不到任何应该导致这种行为的东西。

如果没有定义vhost,站点应该只提供一个拒绝连接的错误吗?

EN

回答 1

Server Fault用户

发布于 2018-04-28 17:27:58

来自Apache2.4文档(可能有帮助):

当请求到达时,服务器将根据请求使用的IP地址和端口找到最佳(最具体)匹配参数。如果有多个虚拟主机包含此最佳匹配地址和端口组合,Apache将进一步将ServerName和ServerAlias指令与请求中的服务器名称进行比较。如果从任何基于名称的虚拟主机中省略ServerName指令,服务器将默认为从系统主机名派生的完全限定域名(FQDN)。这种隐式设置的服务器名可能导致违反直觉的虚拟主机匹配,并且是不鼓励的。

以下是最有趣的:“如果省略基于any名称的虚拟主机中的<#>any指令,服务器将默认为从系统主机名派生的完全限定域名(FQDN)”

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

https://serverfault.com/questions/909817

复制
相关文章

相似问题

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