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