首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主机名不匹配的备份机器上的Apache httpd

主机名不匹配的备份机器上的Apache httpd
EN

Server Fault用户
提问于 2023-02-04 10:19:48
回答 1查看 41关注 0票数 0

我必须在备份机器(即CentOS )上运行Apache服务器。在本例中,它是一个WordPress多站点安装。因为它是备份机器,所以DNS服务器没有指向正确的IP地址。

问题是,这里并不是唯一的虚拟主机,还有其他虚拟主机。目录/etc/httpd/conf.d/有这样的文件:00-default.confvhost1.confvhost2.conf等,其中一个配置文件包含这个WordPress多站点备份。这些虚拟主机配置文件中的每一个看起来或多或少都是相同的:

代码语言:javascript
复制
<VirtualHost *:80>
  ServerName vhostX.example.org
  # rest of config goes here
</VirtualHost>

<VirtualHost *:443>
  ServerName vhostX.example.org
  # rest of config goes here
</VirtualHost>

WordPress备份的虚拟主机部分包含ServerAlias中多站点的所有可能的主机名。

在我的客户机上,在文件/etc/hosts中,我添加了原始机器的FQDN,以指向备份机器的IP地址。

现在,我观察到的问题如下:

  • 只有WordPress多站点实例的主站点才正确响应,尽管它也是ServerAlias,而不是ServerName
  • 列出的als ServerAlias的所有其他域名都由虚拟主机处理,虚拟主机在00-default.conf中配置,而不是用于备份的虚拟主机。这是我最不明白的一点。由于正确的主机名是在SNI和HTTP报头中给出的,所以我希望它能够获得正确的虚拟主机配置,因为域名列在那里是ServerAlias
  • 如果我将*:80*:443替换为IP地址符号,即192.168.1.2:80 resp。192.168.1.2:443,那么这个WordPress备份是工作的,但是没有其他的了(我认为一切都是由WordPress多站点实例处理的,它被配置为重定向到我们的主站点)。

我尝试过的内容:客户机上的命令(主机名和IP地址已编辑):

代码语言:javascript
复制
curl -vkLo- --resolve wpsite1.example.org:80:192.168.1.2 --resolve wpsite1.example.org:443:192.168.1.2 'http://wpsite1.example.org'

文件/etc/nsswitch.conf设置为在查询DNS服务器之前解析主机文件,如果这与此相关的话。我还尝试将IP地址添加到服务器的文件/etc/hosts中。据我所知,我假设httpd试图在启动时解析DNS名称,但由于DNS服务器将名称解析为生产性IP地址,因此无法工作。

我怎样才能解决这个问题?我必须给主机分配第二个IP地址吗?

EN

回答 1

Server Fault用户

发布于 2023-02-06 06:56:38

第二天,我发现了最不明显的事情:

代码语言:javascript
复制
$ apachectl -S
[...]
141.201.80.66:80       is a NameVirtualHost
         default server one-of-the-wp-single-sites.example.org (/etc/httpd/conf.d/00_defaults.conf:1)
[...]

出于某种原因,我立刻想到这个域名是第一个拥有这个IP地址的域名,这个IP地址列在文件/etc/hosts中。在其他行之前,在文件/etc/hosts中插入本地主机名就可以了:

代码语言:javascript
复制
192.168.1.2   this-host.example.org

重新加载Httpd,一切都很好。

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

https://serverfault.com/questions/1121946

复制
相关文章

相似问题

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