我从未听说过的域名解析到我的网站

i-C*_*ICA 25 domain-name-system linux ubuntu virtualhost apache-2.2

我发现(通过查看 mod_pagespeed 缓存条目)一个我以前从未听说过的完全随机域正在解析到我的网站。

如果我访问这个域,我的网站就会加载。该域的 DNS 指向我服务器的 IP。

现在在我的 vhost 配置中我有 *:80,我猜这是我出错的地方。

我立即将其更改为 example.com:80,其中 example.com 是我的域。假设这意味着服务器只会响应和满足对我的域名的请求,而不是端口 80 上的任何请求。

我原来的 vhost 配置;

<VirtualHost *:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我新尝试的配置;

Listen 80
ServerName example.com

<VirtualHost example.com:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用新配置重新启动 apache 时,出现以下错误:

 * Restarting web server apache2 [Fri Mar 28  08:55:47.821904 2014] [core:error] [pid 5555] (EAI 2)Name or service not known: AH00549: Failed to resolve server name for 152.155.254.241 (check DNS) -- or specify an explicit ServerName
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Run Code Online (Sandbox Code Playgroud)

注意:上述错误中以 152 开头的 IP 已稍作编辑,但原来的 IP 地址无论如何都不是我的服务器的 IP 地址。

任何人都可以就这个问题提供建议吗?域名(实际上有一对)是否只是无辜地解析到我的网站的专用服务器的前一个用户,其 DNS 仍然指向它?我如何解决 apache 虚拟主机配置问题,欢迎提供任何其他建议。

谢谢。

And*_*man 30

让那些其他域指向您的主机可能没有坏处,当然,它会增加服务器的负载。如果要阻止它们,请为它们设置新的虚拟主机:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
    # example.com configuration
</VirtualHost>
<VirtualHost *:80>
    ServerName baddomain.com
    Deny from all
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

而不是Deny from all您可以使用Redirect permanent /error.html向他们显示自定义错误消息。

您可以为要阻止的每个域重复第二个 VirtualHost,或者如果它们很多,则首先将其设置为默认 VirtualHost,并为您的域设置例外:

NameVirtualHost *:80
<VirtualHost *:80>
    # default VirtualHost
    Deny from all
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    # example.com config
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

至于您的错误消息,似乎 Apache 在启动时无法解析主机名 example.com,或者找不到您的ServerName指令。不知道为什么。第二个错误表示端口 80 已在您的主机上使用。您是否已关闭所有以前的 Apache 实例?

  • 有伤害。Google 不喜欢具有相同内容的多个站点。 (18认同)