天天看點

Apache+Nginx防止惡意解析配置

  正好幫政府關系的同僚解決了下客戶被惡意解析的事情,順手把東西貼上來供大家參考

一般來說,網站可以用域名和IP來通路。你的網站可以通過IP直接通路,本來這沒什麼問題,但是會有些隐患:

由于搜尋引擎也會收錄你的IP位址的頁面,是以同一個頁面搜尋引擎會重複收錄,造成頁面的權重不如單個收錄高。

域名惡意指向的可能。還記得去年還是前年的 google.com.sb 事件嗎?google.com.sb 這個域名被惡意指向了百度,後來證明了 google.com.sb 這個域名為第三者惡意指向的,并不是Google所為。當然這隻是個玩笑,但是如果被人惡意用别的域名解析到你的IP的話,那麼你的網站就能通過别人的域名來通路了。接下來會發生什麼?假如那域名是不友善的域名,比如曾經指向非法網站,容易引發搜尋引擎懲罰,連帶IP受到牽連。即使域名沒什麼問題,但流量也會被劫持到别的域名,進而遭到廣告聯盟的封殺。

如何解決這個問題?最直接的方法是讓使用者隻能通過域名來通路網站,而不能通過IP來直接通路。這個可以修改Apache配置檔案httpd.conf來實作。下面是小站的實作:

Apache

NameVirtualHost 121.*.*.* 
< span>VirtualHost 121.*.*.*
<ServerName 121.*.*.* 
< span>Location/<Order Allow,Deny Deny from all 
</>Location<</>VirtualHost<< span>VirtualHost 121.*.*.*<DocumentRoot /var/www/nowamagic/ ServerName www.nowamagic.net </>VirtualHost<< span>VirtualHost 121.*.*.*<DocumentRoot /var/www/nowamagic/ ServerName nowamagic.net </>VirtualHost<      

第一部分代碼是實作拒絕直接通過 121.*.*.* 這個IP的任何通路請求,這時如果你用 121.*.*.* 通路,會提示拒絕通路。

第二部分代碼就是允許通過 http://www.nowamagic.net/ 這個域名通路,主目錄指向 /var/www/nowamagic/ (這裡伺服器OS是 CentOS)。

第三部分代碼是允許不帶 www 的域名通路,應該能和上面的合并一起寫吧。

Nginx

Nginx預設的站點會允許隻需解析到這個IP就能通路網站,而無須綁定域名。如果預設站點托管有一個網站,而競争對手隻需大量域名解析到這個網站上,可能會影響搜尋引擎的排名。是以這種情況必須禁止,而我們則可以關閉預設站點就可以解決。

打開Nginx配置檔案nginx.conf,把原來的server改成如下狀态:

  1. server {
  2. listen 80 default;
  3. return 500;