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列出即可.
<engine></engine>
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"></connector>
- <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行:<engine name="Catalina" defaulthost="ycoe.vicp.net"></engine>
xml 代碼
- <Engine?name="Catalina"?defaultHost="ycoe.vicp.net">? ??
192行:<host name="ycoe.vicp.net"
xmlnamespaceaware="false" xmlvalidation="false" autodeploy="true"
unpackwars="true" appbase="webapps"></host>
xml 代碼
- <Host?name="ycoe.vicp.net"?appBase="webapps"?unpackWARs="true"?autoDeploy="true"?xmlValidation="false"?xmlNamespaceAware="false">???
然后再添加360行開始的<Host><host></host>元素:<host
name="yvor.vicp.net" autodeploy="true" unpackwars="true"
appbase="webapps"></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.net或
http://yvor.vicp.net訪問
?
?
<engine></engine>
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 |