Tomcat虛擬主機域名的設置

 1.設置本地主機域名
    Hosts是一個沒有擴展名的系統文件,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“數據庫”,當用戶在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統再會將網址提交DNS域名解析服務器進行IP地址的解析。
    通過修改本地主機上的一個hosts文件,可以進行對ip地址與本地域名的映射,從而解決在本地調試JSP項目的時候,通過本地域名進行訪問。
    hosts文件在系統目錄C:/WINDOWS/system32/drivers/etc/下,這個目錄不容易記憶,如果要經常修改這個文件的話不是很方便找,可以 建立一個批處理hosts.bat文件,用文本編輯器打開,寫入內容explorer "C:/WINDOWS/system32/drivers/etc",保存退出,可以把這個hosts.bat文件放在桌面,每次雙擊它就能打開hosts文件所在的目錄。也可以將hosts.bat文件放到C:/WINDOWS下,這樣,每次只要從點“開始”->“運行”,輸入hosts,點回車就可以打開hosts文件所在的目錄了,另外在命令行也可以輸入hosts打開hosts文件所在的目錄。
    找到hosts文件後,用文本編輯器打開,默認狀態下,hosts文件裏只有一個映射關係:
    127.0.0.1       localhost
    按照這個格式再添加一個映射:
    202.112.113.171   www.yujiaxin.com
    保存,退出。這時候本地IP地址202.112.113.171已經和www.yujiaxin.com這個本地域名做了對應的映射關係。

2.server.xml配置簡介
server.xml的基本配置信息,更具體的配置信息見tomcat的文檔
server:
port 指定一個端口,這個端口負責監聽關閉tomcat的請求
shutdown 指定向端口發送的命令字符串
service:
name 指定service的名字
Connector (表示客戶端和service之間的連接):
port 指定服務器端要創建的端口號,並在這個斷口監聽來自客戶端的請求
minProcessors 服務器啓動時創建的處理請求的線程數
maxProcessors 最大可以創建的處理請求的線程數
enableLookups 如果爲true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若爲false則不進行DNS查詢,而是返回其ip地址
redirectPort 指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號
acceptCount 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
connectionTimeout 指定超時的時間數(以毫秒爲單位)
Engine (表示指定service中的請求處理機,接收和處理來自Connector的請求):
defaultHost 指定缺省的處理請求的主機名,它至少與其中的一個host元素的
name屬性值是一樣的
Context (表示一個web應用程序,通常爲WAR文件,關於WAR的具體信息見servlet規範):
docBase 應用程序的路徑或者是WAR文件存放的路徑
path 表示此web應用程序的url的前綴,這樣請求的url爲http://localhost:8080/path/****
reloadable 這個屬性非常重要,如果爲true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重起tomcat的情況下改變應用程序
host (表示一個虛擬主機):
name 指定主機名
appBase 應用程序基本目錄,即存放應用程序的目錄
unpackWARs 如果爲true,則tomcat會自動將WAR文件解壓,否則不解壓,直接從WAR文件中運行應用程序
Logger (表示日誌,調試和錯誤信息):
className 指定logger使用的類名,此類必須實現
org.apache.catalina.Logger 接口
prefix 指定log文件的前綴
suffix 指定log文件的後綴
timestamp 如果爲true,則log文件名中要加入時間,如下例:localhost_log.2001-10-04.txt
Realm (表示存放用戶名,密碼及role的數據庫):
className 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口
Valve (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣):
className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程序的訪問信息directory 指定log文件存放的位置
pattern 有兩個值,common方式記錄遠程主機名或ip地址,用戶名,日期,第一行請求的字符串,HTTP響應代碼,發送的字節數。combined方式比common方式記錄的值更多

3.配置虛擬主機(Virtual Hosts)
      關於server.xml中“Host”這個元素,只有在你設置虛擬主機的才需要修改。虛擬主機是一種在一個web服務器上服務多個域名的機制,對每個域名而言,都好象獨享了整個主機。實際上,大多數的小型商務網站都是採用虛擬主機實現的,這主要是因爲虛擬主機能直接連接到Internet並提供相應的帶寬,以保障合理的訪問響應速度,另外虛擬主機還能提供一個穩定的固定IP。
  基於名字的虛擬主機可以被建立在任何web服務器上,建立的方法就是通過在域名服務器(DNS)上建立IP地址的別名,並且告訴web服務器把去往不同域名的請求分發到相應的網頁目錄。在Tomcat中使用虛擬主機,需要設置DNS或主機數據。在server.xml中設置內容,如下:

 

server.xml 代碼
 

<Server port="8005" shutdown="SHUTDOWN" debug="0">    
<Service name="Tomcat-Standalone">    
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"/>    
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8443" minProcessors="5" maxProcessors="75" acceptCount="10" debug="0" scheme="https" secure="true"/>    
<Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory" clientAuth="false" protocol="TLS" />    
Connector>    
<Engine name="Standalone" defaultHost="localhost" debug="0">    
    
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">    
<Context path="" docBase="ROOT" debug="0"/>    
<Context path="/orders" docBase="/orders" debug="0" reloadable="true" crossContext="true">    
Context>    
Host>    
  
    
<Host name="www.yujiaxin.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">  
<Context docBase="jspwebsite" path="" reloadable="true" />  
Host>    
  
Engine>    
Service>    
Server>     

  Tomcat的server.xml文件,在初始狀態下,只包括一個虛擬主機,但是它容易被擴充到支持多個虛擬主機。增加虛擬主機只要增加完整Host標籤即可。每一個Host元素必須包括一個或多個context元素,所包含的context元素中必須有一個是默認的context,這個默認的context的顯示路徑應該爲空(例如,path="")。

 

 

捆綁的主機名以多個Alias列出即可.


xml 代碼
<Engine    
defaultHost="localhost"    
name="Catalina">    
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>    
<Host    
appBase="webapps"    
name="localhost">    
<Alias>itmao.jaxmao.org</Alias>    
<Alias>google.jaxmao.org</Alias>    
<Alias>bluepure.jaxmao.org</Alias>    
<Alias>aaa.jaxmao.org</Alias>    
</Host>    
<Host    
appBase="webapps"    
name="google.com">    
<Alias>www.google.org</Alias>    
<Alias>google.google.org</Alias>    
<Alias>bluepure.google.org</Alias>    
</Host>    
</Engine>   

 


也可以在後臺管理界面配置:http://localhost:8080/admin
 
 
81行修改了兩個參數值:
<Connector port="80" maxHttpHeaderSize="8192"    
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    
enableLookups="false" redirectPort="8443" acceptCount="100"    
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GB2312"/>   
xml 代碼

  修改port是修改Tomcat的服務端口,默認爲8080,URIEncoding改爲GB2312是爲了使用中文路徑
    但不建議使用.

  125行:
xml 代碼
<Engine name="Catalina" defaultHost="ycoe.vicp.net">    


192行:
xml 代碼
<Host name="ycoe.vicp.net" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">   


  然後再添加360行開始的<Host>元素:
xml 代碼
<Host name="yvor.vicp.net" appBase="webapps" unpackWARs="true" autoDeploy="true"    
xmlValidation="false" xmlNamespaceAware="false">    
<Context docBase="D:/WORKS/YCOE/ycoe" path="/" reloadable="true"    
workDir="D:/WORKS/YCOE/Tomcat/work/ycoe"></Context>    
</Host>   


  這裏是設置我們的第二個虛擬網站的域名.
------------------------------------------------------------------
但不能用http://ycoe.vicp.nethttp://yvor.vicp.net訪問
 
 
xml 代碼
<Engine    
defaultHost="ycoe.vicp.net"    
name="Catalina">    
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>    
<Host name="ycoe.vicp.net"    
appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >    
<Alias>yvor.vicp.net</Alias>    
<Context docBase="D:/WORKS/YCOE/ycoe" path="/" reloadable="true"    
workDir="D:/WORKS/YCOE/Tomcat/work/ycoe"></Context>    
</Host>    
</Engine>   

 

 

域名不能訪問的話,也要注意檢查你的域名是否正確的解析到了當前的ip.


bluepure說得對,你先搞定正確解析當前的ip,再來修改Tomcat。

在不同機器上運行下面命令:


代碼:
c:> ping ycoe.vicp.net
還有
c:> ping yvor.vicp.net
 

 

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