iis,apache,nginx修改主機頭

所謂的主機頭的叫法起自IIS中對域名綁定的功能,一般的web服務器一個ip地址的80端口只能正確對應一個網站,處理一個域名的訪問請求。但是我們可以通過綁定主機頭,在同一個ip和端口上,將不同的網站空間對應不同的域名,以連接請求中的域名字段來分發和應答正確的對應空間的文件執行結果。

舉個例子來說,一臺服務器ip地址爲192.168.1.10,有兩個域名和對應的空間在這臺服務器上,使用的都是192.168.1.1080端口來提供服務。如果只是簡單的將兩個域名AB的域名記錄解析到這個ip地址,那麼web服務器在收到任何請求時反饋的都會是同一個網站的信息,這顯然達不到要求。這時我們可以使用主機頭綁定域名AB到他們對應的空間文件夾CD。當含有域名Aweb請求信息到達192.168.1.10時,web服務器將執行它對應的空間C中的首頁文件,並返回給客戶端,含有域名Bweb請求信息同理,只不過解釋的是空間D的文件。所以在使用主機頭綁定功能後就不能使用ip地址訪問其上的任何網站了,因爲請求信息中不存在域名信息,所以會出錯。

因此,爲了防止域名解析惡意指向,我們需要禁止web服務器中默認的空主機頭,操作如下:

1.apache環境中:

vi /etc/httpd/conf/httpd.conf
編輯配置文件,在你的站點配置之前再增加一個站點(紅色字體部分是我們要增加的,藍色字體部分代表你正在使用的站點配置)

NameVirtualHost *

<VirtualHost *:80>

ServerAdmin yourmail#mail.com

DocumentRoot /error

ServerName abc.com

</VirtualHost>

<VirtualHost *:80>

ServerAdmin yourmail#mail.com

DocumentRoot "你的站點路徑"

ServerName yourWebsite.com

ServerAlias *.yourWebsite.com

</VirtualHost>

2.Nginx環境中:

vi /usr/local/nginx/conf/nginx.conf    #配置文件

找到server,添加下面這兩行:

 listen 80 default;    #default代表默認虛擬主機

server_name _;

例如:

 server {

listen 80 default;

 server_name _;

return 500;   #返回500錯誤信息

}

還可以把這些空的流量轉向到某一個網站,如下設置:

 server {

listen 80 default;

 server_name _;

rewrite ^(.*) http://某個網址permanent;    #頁面重定向

}

Windows環境中設置IIS主機頭

運行“inetmgr”進入IIS管理器,在站點屬性的網站標籤頁中,點開網站標識”→“高級,選中此網站的多個標識中的內容進行編輯,在主機頭那一項中填入此站點相應的域名,然後點擊確認並重啓服務即可

Tomcat虛擬主機配置方案(域名解析)For Windows/Linux

一、打開tomcat安裝目錄下conf/server.xml這個文件

server.xml文檔中找到

</Engine>

</Service>

接着添加上面添加以下內容(暫時先說分爲三種方式)

第一種:

<Host name="www.yovole.com"  debug="0"  appBase="webapps"  unpackWARs="true"  autoDeploy="true"  xmlValidation="false"  xmlNamespaceAware="false">

<Context path=""  docBase="www"  debug="0"  reloadable="true" crossContext="true"/>

<Logger  className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www_5sai_log." suffix=".txt"

timestamp="true"/>

</Host>

以上的內容就是在Tomcatwebapps目錄下新建一個www文件夾作爲www.yovole.com這個域名的主目錄

第二種:

<Host name="www.yovole.com"  debug="0"  appBase="C:\\test\www"  unpackWARs="true"  autoDeploy="true"> 

<Context path="" docBase="."/>

<Valve  className="org.apache.catalina.valves.AccessLogValve" directory="logs"  prefix="www_yovole_access_log."  suffix=".txt" pattern="common"   resolveHosts="false"/>

<Logger  className="org.apache.catalina.logger.FileLogger"

directory="logs"  prefix="www_yovole_log."  suffix=".txt"  timestamp="true"/>

</Host>

以上內容的意思就是在Ctest文件夾下面建立一個www文件夾作爲www.yovole.com這個

域名的主目錄

第三種,如果是linux系統的/var/www作爲www.yovole.com這個域名的主目錄的話內容如下:

<Host name="www.yovole.com"  debug="0"  appBase="/var/www"  unpackWARs="true"  autoDeploy="true"> 

<Context path="" docBase="."/>

<Valve  className="org.apache.catalina.valves.AccessLogValve"

directory="logs"  prefix="www_yovole_access_log."  suffix=".txt"  pattern="common"  resolveHosts="false"/>

<Logger  className="org.apache.catalina.logger.FileLogger"

directory="logs"  prefix="www_yovole_log."  suffix=".txt"  timestamp="true"/> 

</Host>

再補充一種

<Host name="www.yovole.cn"  debug="0"  unpackWARs="true">

 <Valve  className="org.apache.catalina.valves.AccessLogValve"

directory="/var/log/tomcat"  prefix="www_yovole_access_log."  suffix=".txt"

pattern="common"/>

<Logger  className="org.apache.catalina.logger.FileLogger"

directory="/var/log/tomcat"  prefix="www_yovole_log." suffix=".txt"

timestamp="true"/>

<Context  path=""  docBase="/var/www"  debug="0"  reloadable="true"/>

</Host>

域名www.yovole.cn的主目錄爲/var/www該站點的所有訪問LOG放在/ar/log/tomcat裏面

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章