Linux
我從未聽說過的域名解析到我的網站
我發現(通過查看 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 實例?