将域指向没有虚拟主机或自定义conf文件的apache服务器

将域指向没有虚拟主机或自定义conf文件的apache服务器,apache,cpanel,virtualhost,httpd.conf,whm,Apache,Cpanel,Virtualhost,Httpd.conf,Whm,我们有一个SaaS产品,我们为客户提供网站。客户可以要求将自己的域名指向他们的网站。目前,我们使用httpd.conf文件添加指向同一文档目录的VirtualHost条目。之后,数据库将通过匹配URL加载网站。我们意识到这种方法存在两个问题,而且根本无法扩展 如果httpd.conf文件中存在错误,则整个产品可能无法工作。这实际上已经发生了。此外,我们使用WHM和cPanel,因此当我们在live server中添加mod或进行调整时,整个httpd.conf都会被重写,从而使我们能够替换/添加

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

如果httpd.conf文件中存在错误,则整个产品可能无法工作。这实际上已经发生了。此外,我们使用WHM和cPanel,因此当我们在live server中添加mod或进行调整时,整个httpd.conf都会被重写,从而使我们能够替换/添加现有的虚拟主机条目到文件中

奇怪的是,在我们的QA服务器中,我不必添加任何virtualhost条目,只要指向一个新域,就会从数据库中获取该网站。我意识到virtualhost条目只在live服务器中需要。两者都安装了Apache2.4 CentOS。这背后有什么原因吗?我确信这与配置更改有关

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


干杯

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

Apache将使用listen指令侦听您告诉它的接口,并且在接收请求时,如果您尚未定义任何virtualhosts,则默认服务器配置将应答所有请求

添加virtualhost时,将使用它来回答所有请求,如果添加更多virtualhost,则会检查其中的服务器名,以根据传入的主机头确定在何处传递请求


实际上,它没有更多功能。

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

Apache将使用listen指令侦听您告诉它的接口,并且在接收请求时,如果您尚未定义任何virtualhosts,则默认服务器配置将应答所有请求

添加virtualhost时,将使用它来回答所有请求,如果添加更多virtualhost,则会检查其中的服务器名,以根据传入的主机头确定在何处传递请求


真的没有什么比这更重要的了。

没错。默认服务器配置位于何处?如果请求与虚拟主机不匹配,那么默认配置是否会响应请求,或者会发生什么情况?如果在httpd-k start-f/path/to/conf中启动服务器时未指定任何值,则默认配置在编译时从默认值加载,在某些发行版中通常称为httpd.conf或apache2.conf。如果添加虚拟主机,并且其中没有与客户端请求的主机匹配的名称,那么将使用第一个虚拟主机。我认为这与未绑定IPs条目的默认虚拟主机有关。我可以更改此详细信息吗?正确。默认服务器配置位于何处?如果请求与虚拟主机不匹配,那么默认配置是否会响应请求,或者会发生什么情况?如果在httpd-k start-f/path/to/conf中启动服务器时未指定任何值,则默认配置在编译时从默认值加载,在某些发行版中通常称为httpd.conf或apache2.conf。如果添加虚拟主机,并且其中没有与客户端请求的主机匹配的名称,那么将使用第一个虚拟主机。我认为这与未绑定IPs条目的默认虚拟主机有关。我可以更改此详细信息吗?