Linux

我從未聽說過的域名解析到我的網站

  • March 29, 2014

我發現(通過查看 mod_pagespeed 記憶體條目)我以前從未聽說過的完全隨機的域正在解析到我的網站。

如果我訪問這個域,我的網站就會載入。該域的 DNS 指向我伺服器的 IP。

現在在我的虛擬主機配置中,我有 *:80,我猜這是我出錯的地方。

我立即將其更改為 example.com:80,其中 example.com 是我的域。假設這意味著伺服器只會響應和完成對我的域名的請求,而不是埠 80 上的任何請求。

我原來的虛擬主機配置;

<VirtualHost *:80>
   DocumentRoot "/var/www/example.com"
   <Directory "/var/www/example.com">
       Order allow,deny
       Allow from all
       Allowoverride all
   </Directory>
</VirtualHost>

我新嘗試的配置;

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>

當我嘗試使用新配置重新啟動 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

注意:上述錯誤中以152開頭的IP略有修改,但原來不是我伺服器的IP地址。

任何人都可以就這個問題提供建議嗎?無辜地解析到我的網站的域(實際上有幾個)是否只是專用伺服器的前一個使用者,其 DNS 仍然指向它?如何解決 apache 虛擬主機配置問題,歡迎提出任何其他建議。

謝謝。

讓那些其他域指向您的主機可能沒有害處,當然它會增加伺服器上的負載。如果要阻止它們,請為它們設置新的虛擬主機:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName example.com
   # example.com configuration
</VirtualHost>
<VirtualHost *:80>
   ServerName baddomain.com
   Deny from all
</VirtualHost>

而不是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>

至於您的錯誤消息,似乎 Apache 在啟動時無法解析主機名 example.com,或者找不到您的ServerName指令。不知道為什麼。第二個錯誤表示埠 80 已在您的主機上使用。您是否已關閉所有以前的 Apache 實例?

引用自:https://serverfault.com/questions/585089