【问题标题】:Pointing a domain to apache server without virtual hosts or custom conf files将域指向没有虚拟主机或自定义 conf 文件的 apache 服务器
【发布时间】:2017-08-11 07:27:15
【问题描述】:

我们有一个 SaaS 产品,我们为客户提供网站。客户可以请求将自己的域指向他们的网站。目前我们使用 httpd.conf 文件添加一个指向同一文档目录的 VirtualHost 条目。之后,数据库将通过匹配 URL 来加载网站。我们意识到这种方法存在一些问题,而且根本无法扩展。

如果 httpd.conf 文件中有错误,那么整个产品可能无法正常工作。这实际上已经发生了。此外,我们使用 WHM 和 cPanel,因此当我们在实时服务器中添加 mod 或进行调整时,整个 httpd.conf 会被重写,我们需要将现有的虚拟主机条目替换/添加到文件中。

奇怪的是,在我们的 QA 服务器中,我不必添加任何虚拟主机条目,只要指向新域,就会从数据库中获取该网站。我意识到只有在实时服务器中才需要虚拟主机条目。两者都安装了 Apache 2.4 CentOS。这背后有什么原因吗?我确定这与配置更改有关。

希望有人能指出正确的方向,我可以在我们的实时服务器环境中实现同样的目标。

干杯!

【问题讨论】:

    标签: apache cpanel virtualhost httpd.conf whm


    【解决方案1】:

    在 Apache VirtualHosts 中添加多功能性,但您不必创建任何功能。

    Apache 将侦听您告诉它的接口(使用 Listen 指令),如果您尚未定义任何虚拟主机,则在接收请求时,默认服务器配置将响应所有请求。

    在您添加虚拟主机的那一刻,它将用于回答所有请求,如果您添加更多虚拟主机,则会检查其中的服务器名称,以确定根据传入主机标头传递请求的位置。

    真的没有更多的东西了。

    【讨论】:

    • 正确。默认服务器配置在哪里?如果请求与虚拟主机不匹配,默认配置会响应请求还是会发生什么?
    • 如果你在启动服务器时没有指定任何默认配置(如httpd -k start -f /path/to/conf),则默认配置在编译时从默认值加载,通常称为httpd.conf或apache2.conf在某些发行版中。如果您添加虚拟主机并且其中没有名称与客户端请求的主机匹配,则将使用第一个虚拟主机。
    • 我认为这与“# Default vhost for unbound IPs”条目有关。我可以更改此详细信息吗?
    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 2014-12-29
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多