關(guān)于Tomcat虛擬主機(jī)域名的設(shè)置
1.設(shè)置本地主機(jī)域名 Hosts是一個(gè)沒有擴(kuò)展名的系統(tǒng)文件,可以用記事本等工具打開,其作用就是將一些常用的網(wǎng)址域名與其對(duì)應(yīng)的IP地址建立一個(gè)關(guān)聯(lián)“數(shù)據(jù)庫(kù)”,當(dāng)用戶在瀏覽器中輸入一個(gè)需要登錄的網(wǎng)址時(shí),系統(tǒng)會(huì)首先自動(dòng)從Hosts文件中尋找對(duì)應(yīng)的IP地址,一旦找到,系統(tǒng)會(huì)立即打開對(duì)應(yīng)網(wǎng)頁(yè),如果沒有找到,則系統(tǒng)再會(huì)將網(wǎng)址提交DNS域名解析服務(wù)器進(jìn)行IP地址的解析。 通過修改本地主機(jī)上的一個(gè)hosts文件,可以進(jìn)行對(duì)ip地址與本地域名的映射,從而解決在本地調(diào)試JSP項(xiàng)目的時(shí)候,通過本地域名進(jìn)行訪問。 hosts文件在系統(tǒng)目錄C:\WINDOWS\system32\drivers\etc\下,這個(gè)目錄不容易記憶,如果要經(jīng)常修改這個(gè)文件的話不是很方便找,可以 建立一個(gè)批處理hosts.bat文件,用文本編輯器打開,寫入內(nèi)容explorer "C:\WINDOWS\system32\drivers\etc",保存退出,可以把這個(gè)hosts.bat文件放在桌面,每次雙擊它就能打開hosts文件所在的目錄。也可以將hosts.bat文件放到C:\WINDOWS下,這樣,每次只要從點(diǎn)“開始”->“運(yùn)行”,輸入hosts,點(diǎn)回車就可以打開hosts文件所在的目錄了,另外在命令行也可以輸入hosts打開hosts文件所在的目錄。 找到hosts文件后,用文本編輯器打開,默認(rèn)狀態(tài)下,hosts文件里只有一個(gè)映射關(guān)系: 127.0.0.1 localhost 按照這個(gè)格式再添加一個(gè)映射: 202.112.113.171 www.yujiaxin.com 保存,退出。這時(shí)候本地IP地址202.112.113.171已經(jīng)和www.yujiaxin.com這個(gè)本地域名做了對(duì)應(yīng)的映射關(guān)系。
2.server.xml配置簡(jiǎn)介 server.xml的基本配置信息,更具體的配置信息見tomcat的文檔 server: port 指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽關(guān)閉tomcat的請(qǐng)求 shutdown 指定向端口發(fā)送的命令字符串 service: name 指定service的名字 Connector (表示客戶端和service之間的連接): port 指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)斷口監(jiān)聽來(lái)自客戶端的請(qǐng)求 minProcessors 服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù) maxProcessors 最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù) enableLookups 如果為true,則可以通過調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址 redirectPort 指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào) acceptCount 指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過這個(gè)數(shù)的請(qǐng)求將不予處理 connectionTimeout 指定超時(shí)的時(shí)間數(shù)(以毫秒為單位) Engine (表示指定service中的請(qǐng)求處理機(jī),接收和處理來(lái)自Connector的請(qǐng)求): defaultHost 指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的 name屬性值是一樣的 Context (表示一個(gè)web應(yīng)用程序,通常為WAR文件,關(guān)于WAR的具體信息見servlet規(guī)范): docBase 應(yīng)用程序的路徑或者是WAR文件存放的路徑 path 表示此web應(yīng)用程序的url的前綴,這樣請(qǐng)求的url為http://localhost:8080/path/**** reloadable 這個(gè)屬性非常重要,如果為true,則tomcat會(huì)自動(dòng)檢測(cè)應(yīng)用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動(dòng)裝載新的應(yīng)用程序,可以在不重起tomcat的情況下改變應(yīng)用程序 host (表示一個(gè)虛擬主機(jī)): name 指定主機(jī)名 appBase 應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄 unpackWARs 如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓,否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序 Logger (表示日志,調(diào)試和錯(cuò)誤信息): className 指定logger使用的類名,此類必須實(shí)現(xiàn) org.apache.catalina.Logger 接口 prefix 指定log文件的前綴 suffix 指定log文件的后綴 timestamp 如果為true,則log文件名中要加入時(shí)間,如下例:localhost_log.2001-10-04.txt Realm (表示存放用戶名,密碼及role的數(shù)據(jù)庫(kù)): className 指定Realm使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Realm接口 Valve (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣): className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應(yīng)用程序的訪問信息directory 指定log文件存放的位置 pattern 有兩個(gè)值,common方式記錄遠(yuǎn)程主機(jī)名或ip地址,用戶名,日期,第一行請(qǐng)求的字符串,HTTP響應(yīng)代碼,發(fā)送的字節(jié)數(shù)。combined方式比common方式記錄的值更多
3.配置虛擬主機(jī)(Virtual Hosts) 關(guān)于server.xml中“Host”這個(gè)元素,只有在你設(shè)置虛擬主機(jī)的才需要修改。虛擬主機(jī)是一種在一個(gè)web服務(wù)器上服務(wù)多個(gè)域名的機(jī)制,對(duì)每個(gè)域名而言,都好象獨(dú)享了整個(gè)主機(jī)。實(shí)際上,大多數(shù)的小型商務(wù)網(wǎng)站都是采用虛擬主機(jī)實(shí)現(xiàn)的,這主要是因?yàn)樘摂M主機(jī)能直接連接到Internet并提供相應(yīng)的帶寬,以保障合理的訪問響應(yīng)速度,另外虛擬主機(jī)還能提供一個(gè)穩(wěn)定的固定IP。 基于名字的虛擬主機(jī)可以被建立在任何web服務(wù)器上,建立的方法就是通過在域名服務(wù)器(DNS)上建立IP地址的別名,并且告訴web服務(wù)器把去往不同域名的請(qǐng)求分發(fā)到相應(yīng)的網(wǎng)頁(yè)目錄。在Tomcat中使用虛擬主機(jī),需要設(shè)置DNS或主機(jī)數(shù)據(jù)。在server.xml中設(shè)置內(nèi)容,如下: <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"> <!-- This Host is the default Host --> <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> <!-- This Host is the first "Virtual Host": http://www.yujiaxin.com --> <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文件,在初始狀態(tài)下,只包括一個(gè)虛擬主機(jī),但是它容易被擴(kuò)充到支持多個(gè)虛擬主機(jī)。增加虛擬主機(jī)只要增加完整Host標(biāo)簽即可。每一個(gè)Host元素必須包括一個(gè)或多個(gè)context元素,所包含的context元素中必須有一個(gè)是默認(rèn)的context,這個(gè)默認(rèn)的context的顯示路徑應(yīng)該為空(例如,path="")。 |