亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

TomCat 多虛擬站點配置

系統 2105 0
在網絡上看了許久,沒有一個真正可以解決TomCat多虛擬站點的配置問題的,經過試驗和參考官方網站資料,終于解決了這個問題.
  參考資料:Apache Tomcat文檔 http://tomcat.apache.org/tomcat-5.0-doc/config/host.html

  在文中有這么一段話:
  One or more Host elements are nested inside an Engine element. Inside the Host element, you can nest Context elements for the web applications associated with this virtual host. Exactly one of the Hosts associated with each Engine MUST have a name matching the defaultHost attribute of that Engine.

  譯文:Engine元素中需要一個或多個Host元素,在Host元素里面,你必需有Context元素讓網站應用程序與虛擬主機連接上,嚴密地說,每一個主機所關聯的引擎必須有一個名字跟那個引擎默認的主機屬性匹配 .
  可知,在Engine元素里面可以有多個Host,那么說,可以有在一個Engine里面設置多個服務器了,這正是我們需要的.每個Host元素里面要有一個Context元素.
  根據conf\server.xml里面的說明和范例,我樣可以編寫出下面一個配置文件:

??1 <!-- ?Example?Server?Configuration?File? -->
??2 <!-- ?Note?that?component?elements?are?nested?corresponding?to?their
??3 ?????parent-child?relationships?with?each?other? -->
??4
??5 <!-- ?A?"Server"?is?a?singleton?element?that?represents?the?entire?JVM,
??6 ?????which?may?contain?one?or?more?"Service"?instances.??The?Server
??7 ?????listens?for?a?shutdown?command?on?the?indicated?port.
??8
??9 ?????Note:??A?"Server"?is?not?itself?a?"Container",?so?you?may?not
?10 ?????define?subcomponents?such?as?"Valves"?or?"Loggers"?at?this?level.
?11 ? -->
?12
?13 < Server? port ="8005" ?shutdown ="SHUTDOWN" >
?14
?15 ?? <!-- ?Comment?these?entries?out?to?disable?JMX?MBeans?support?used?for?the
?16 ???????administration?web?application? -->
?17 ?? < Listener? className ="org.apache.catalina.core.AprLifecycleListener" ? />
?18 ?? < Listener? className ="org.apache.catalina.mbeans.ServerLifecycleListener" ? />
?19 ?? < Listener? className ="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" ? />
?20 ?? < Listener? className ="org.apache.catalina.storeconfig.StoreConfigLifecycleListener" />
?21
?22 ?? <!-- ?Global?JNDI?resources? -->
?23 ?? < GlobalNamingResources >
?24
?25 ???? <!-- ?Test?entry?for?demonstration?purposes? -->
?26 ???? < Environment? name ="simpleValue" ?type ="java.lang.Integer" ?value ="30" />
?27
?28 ???? <!-- ?Editable?user?database?that?can?also?be?used?by
?29 ?????????UserDatabaseRealm?to?authenticate?users? -->
?30 ???? < Resource? name ="UserDatabase" ?auth ="Container"
?31 ??????????????type ="org.apache.catalina.UserDatabase"
?32 ???????description ="User?database?that?can?be?updated?and?saved"
?33 ???????????factory ="org.apache.catalina.users.MemoryUserDatabaseFactory"
?34 ??????????pathname ="conf/tomcat-users.xml" ? />
?35
?36 ?? </ GlobalNamingResources >
?37
?38 ?? <!-- ?A?"Service"?is?a?collection?of?one?or?more?"Connectors"?that?share
?39 ???????a?single?"Container"?(and?therefore?the?web?applications?visible
?40 ???????within?that?Container).??Normally,?that?Container?is?an?"Engine",
?41 ???????but?this?is?not?required.
?42
?43 ???????Note:??A?"Service"?is?not?itself?a?"Container",?so?you?may?not
?44 ???????define?subcomponents?such?as?"Valves"?or?"Loggers"?at?this?level.
?45 ??? -->
?46
?47 ?? <!-- ?Define?the?Tomcat?Stand-Alone?Service? -->
?48 ?? < Service? name ="Catalina" >
?49
?50 ???? <!-- ?A?"Connector"?represents?an?endpoint?by?which?requests?are?received
?51 ?????????and?responses?are?returned.??Each?Connector?passes?requests?on?to?the
?52 ?????????associated?"Container"?(normally?an?Engine)?for?processing.
?53
?54 ?????????By?default,?a?non-SSL?HTTP/1.1?Connector?is?established?on?port?8080.
?55 ?????????You?can?also?enable?an?SSL?HTTP/1.1?Connector?on?port?8443?by
?56 ?????????following?the?instructions?below?and?uncommenting?the?second?Connector
?57 ?????????entry.??SSL?support?requires?the?following?steps?(see?the?SSL?Config
?58 ?????????HOWTO?in?the?Tomcat?5?documentation?bundle?for?more?detailed
?59 ?????????instructions):
?60 ?????????*?If?your?JDK?version?1.3?or?prior,?download?and?install?JSSE?1.0.2?or
?61 ???????????later,?and?put?the?JAR?files?into?"$JAVA_HOME/jre/lib/ext".
?62 ?????????*?Execute:
?63 ?????????????%JAVA_HOME%\bin\keytool?-genkey?-alias?tomcat?-keyalg?RSA?(Windows)
?64 ?????????????$JAVA_HOME/bin/keytool?-genkey?-alias?tomcat?-keyalg?RSA??(Unix)
?65 ???????????with?a?password?value?of?"changeit"?for?both?the?certificate?and
?66 ???????????the?keystore?itself.
?67
?68 ?????????By?default,?DNS?lookups?are?enabled?when?a?web?application?calls
?69 ?????????request.getRemoteHost().??This?can?have?an?adverse?impact?on
?70 ?????????performance,?so?you?can?disable?it?by?setting?the
?71 ?????????"enableLookups"?attribute?to?"false".??When?DNS?lookups?are?disabled,
?72 ?????????request.getRemoteHost()?will?return?the?String?version?of?the
?73 ?????????IP?address?of?the?remote?client.
?74 ???? -->
?75
?76 ???? <!-- ?Define?a?non-SSL?HTTP/1.1?Connector?on?port?8080? -->
?77 ???? < Connector
?78 port ="80" ???????????????maxHttpHeaderSize ="8192"
?79 ???????????????maxThreads ="150" ?minSpareThreads ="25" ?maxSpareThreads ="75"
?80 ???????????????enableLookups ="false" ?redirectPort ="8443" ?acceptCount ="100"
?81 ???????????????connectionTimeout ="20000" ?disableUploadTimeout ="true" ??URIEncoding ="GB2312" />
?82 ???? <!-- ?Note?:?To?disable?connection?timeouts,?set?connectionTimeout?value
?83 ?????to?0? -->
?84
?85 ???? <!-- ?Note?:?To?use?gzip?compression?you?could?set?the?following?properties?:
?86
?87 ???????????????compression="on"
?88 ???????????????compressionMinSize="2048"
?89 ???????????????noCompressionUserAgents="gozilla,?traviata"
?90 ???????????????compressableMimeType="text/html,text/xml"
?91 ???? -->
?92
?93 ???? <!-- ?Define?a?SSL?HTTP/1.1?Connector?on?port?8443? -->
?94 ???? <!--
?95 ????<Connector?port="8443"?maxHttpHeaderSize="8192"
?96 ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
?97 ???????????????enableLookups="false"?disableUploadTimeout="true"
?98 ???????????????acceptCount="100"?scheme="https"?secure="true"
?99 ???????????????clientAuth="false"?sslProtocol="TLS"?/>
100 ???? -->
101
102 ???? <!-- ?Define?an?AJP?1.3?Connector?on?port?8009? -->
103 ???? < Connector? port ="8009"
104 ???????????????enableLookups ="false" ?redirectPort ="8443" ?protocol ="AJP/1.3" ? />
105
106 ???? <!-- ?Define?a?Proxied?HTTP/1.1?Connector?on?port?8082? -->
107 ???? <!-- ?See?proxy?documentation?for?more?information?about?using?this.? -->
108 ???? <!--
109 ????<Connector?port="8082"
110 ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
111 ???????????????enableLookups="false"?acceptCount="100"?connectionTimeout="20000"
112 ???????????????proxyPort="80"?disableUploadTimeout="true"?/>
113 ???? -->
114
115 ???? <!-- ?An?Engine?represents?the?entry?point?(within?Catalina)?that?processes
116 ?????????every?request.??The?Engine?implementation?for?Tomcat?stand?alone
117 ?????????analyzes?the?HTTP?headers?included?with?the?request,?and?passes?them
118 ?????????on?to?the?appropriate?Host?(virtual?host).? -->
119
120 ???? <!-- ?You?should?set?jvmRoute?to?support?load-balancing?via?AJP?ie?:
121 ????<Engine?name="Standalone"?defaultHost="localhost"?jvmRoute="jvm1">
122 ???? -->
123
124 ???? <!-- ?Define?the?top?level?container?in?our?container?hierarchy? -->
125 ???? < Engine? name ="Catalina" ?defaultHost ="ycoe.vicp.net" >
126
127 ?????? <!-- ?The?request?dumper?valve?dumps?useful?debugging?information?about
128 ???????????the?request?headers?and?cookies?that?were?received,?and?the?response
129 ???????????headers?and?cookies?that?were?sent,?for?all?requests?received?by
130 ???????????this?instance?of?Tomcat.??If?you?care?only?about?requests?to?a
131 ???????????particular?virtual?host,?or?a?particular?application,?nest?this
132 ???????????element?inside?the?corresponding?<Host>?or?<Context>?entry?instead.
133
134 ???????????For?a?similar?mechanism?that?is?portable?to?all?Servlet?2.4
135 ???????????containers,?check?out?the?"RequestDumperFilter"?Filter?in?the
136 ???????????example?application?(the?source?for?this?filter?may?be?found?in
137 ???????????"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
138
139 ???????????Request?dumping?is?disabled?by?default.??Uncomment?the?following
140 ???????????element?to?enable?it.? -->
141 ?????? <!--
142 ??????<Valve?className="org.apache.catalina.valves.RequestDumperValve"/>
143 ?????? -->
144
145 ?????? <!-- ?Because?this?Realm?is?here,?an?instance?will?be?shared?globally? -->
146
147 ?????? <!-- ?This?Realm?uses?the?UserDatabase?configured?in?the?global?JNDI
148 ???????????resources?under?the?key?"UserDatabase".??Any?edits
149 ???????????that?are?performed?against?this?UserDatabase?are?immediately
150 ???????????available?for?use?by?the?Realm.?? -->
151 ?????? < Realm? className ="org.apache.catalina.realm.UserDatabaseRealm"
152 ?????????????resourceName ="UserDatabase" />
153
154 ?????? <!-- ?Comment?out?the?old?realm?but?leave?here?for?now?in?case?we
155 ???????????need?to?go?back?quickly? -->
156 ?????? <!--
157 ??????<Realm?className="org.apache.catalina.realm.MemoryRealm"?/>
158 ?????? -->
159
160 ?????? <!-- ?Replace?the?above?Realm?with?one?of?the?following?to?get?a?Realm
161 ???????????stored?in?a?database?and?accessed?via?JDBC? -->
162
163 ?????? <!--
164 ??????<Realm??className="org.apache.catalina.realm.JDBCRealm"
165 ?????????????driverName="org.gjt.mm.mysql.Driver"
166 ??????????connectionURL="jdbc:mysql://localhost/authority"
167 ?????????connectionName="test"?connectionPassword="test"
168 ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
169 ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
170 ?????? -->
171
172 ?????? <!--
173 ??????<Realm??className="org.apache.catalina.realm.JDBCRealm"
174 ?????????????driverName="oracle.jdbc.driver.OracleDriver"
175 ??????????connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
176 ?????????connectionName="scott"?connectionPassword="tiger"
177 ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
178 ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
179 ?????? -->
180
181 ?????? <!--
182 ??????<Realm??className="org.apache.catalina.realm.JDBCRealm"
183 ?????????????driverName="sun.jdbc.odbc.JdbcOdbcDriver"
184 ??????????connectionURL="jdbc:odbc:CATALINA"
185 ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
186 ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
187 ?????? -->
188
189 ?????? <!-- ?Define?the?default?virtual?host
190 ???????????Note:?XML?Schema?validation?will?not?work?with?Xerces?2.2.
191 ??????? -->
192 ?????? < Host? name ="ycoe.vicp.net" ?appBase ="webapps"
193 ???????unpackWARs ="true" ?autoDeploy ="true"
194 ???????xmlValidation ="false" ?xmlNamespaceAware ="false" >
195
196 ???????? <!-- ?Defines?a?cluster?for?this?node,
197 ?????????????By?defining?this?element,?means?that?every?manager?will?be?changed.
198 ?????????????So?when?running?a?cluster,?only?make?sure?that?you?have?webapps?in?there
199 ?????????????that?need?to?be?clustered?and?remove?the?other?ones.
200 ?????????????A?cluster?has?the?following?parameters:
201
202 ?????????????className?=?the?fully?qualified?name?of?the?cluster?class
203
204 ?????????????name?=?a?descriptive?name?for?your?cluster,?can?be?anything
205
206 ?????????????mcastAddr?=?the?multicast?address,?has?to?be?the?same?for?all?the?nodes
207
208 ?????????????mcastPort?=?the?multicast?port,?has?to?be?the?same?for?all?the?nodes
209
210 ?????????????mcastBindAddr?=?bind?the?multicast?socket?to?a?specific?address
211
212 ?????????????mcastTTL?=?the?multicast?TTL?if?you?want?to?limit?your?broadcast
213
214 ?????????????mcastSoTimeout?=?the?multicast?readtimeout
215
216 ?????????????mcastFrequency?=?the?number?of?milliseconds?in?between?sending?a?"I'm?alive"?heartbeat
217
218 ?????????????mcastDropTime?=?the?number?a?milliseconds?before?a?node?is?considered?"dead"?if?no?heartbeat?is?received
219
220 ?????????????tcpThreadCount?=?the?number?of?threads?to?handle?incoming?replication?requests,?optimal?would?be?the?same?
amount?of?threads?as?nodes
221
222 ?????????????tcpListenAddress?=?the?listen?address?(bind?address)?for?TCP?cluster?request?on?this?host,
223 ????????????????????????????????in?case?of?multiple?ethernet?cards.
224 ????????????????????????????????auto?means?that?address?becomes
225 ????????????????????????????????InetAddress.getLocalHost().getHostAddress()
226
227 ?????????????tcpListenPort?=?the?tcp?listen?port
228
229 ?????????????tcpSelectorTimeout?=?the?timeout?(ms)?for?the?Selector.select()?method?in?case?the?OS
230 ??????????????????????????????????has?a?wakup?bug?in?java.nio.?Set?to?0?for?no?timeout
231
232 ?????????????printToScreen?=?true?means?that?managers?will?also?print?to?std.out
233
234 ?????????????expireSessionsOnShutdown?=?true?means?that
235
236 ?????????????useDirtyFlag?=?true?means?that?we?only?replicate?a?session?after?setAttribute,removeAttribute?has?been?called.
237 ????????????????????????????false?means?to?replicate?the?session?after?each?request.
238 ????????????????????????????false?means?that?replication?would?work?for?the?following?piece?of?code:?(only?for?SimpleTcpReplicationManager)
239 ????????????????????????????<%
240 ????????????????????????????HashMap?map?=?(HashMap)session.getAttribute("map");
241 ????????????????????????????map.put("key","value");
242 ????????????????????????????%>
243 ?????????????replicationMode?=?can?be?either?'pooled',?'synchronous'?or?'asynchronous'.
244 ???????????????????????????????*?Pooled?means?that?the?replication?happens?using?several?sockets?in?a?synchronous?way.?Ie,?
the?data?gets?replicated,?then?the?request?return.?This?is?the?same?as?the?'synchronous'?setting?except?it?uses?a?pool?of?sockets,?
hence?it?is?multithreaded.?This?is?the?fastest?and?safest?configuration.?To?use?this,?also?increase?the?nr?of?tcp?threads?
that?you?have?dealing?with?replication.
245 ???????????????????????????????*?Synchronous?means?that?the?thread?that?executes?the?request,?is?also?the
246 ???????????????????????????????thread?the?replicates?the?data?to?the?other?nodes,?and?will?not?return?until?all
247 ???????????????????????????????nodes?have?received?the?information.
248 ???????????????????????????????*?Asynchronous?means?that?there?is?a?specific?'sender'?thread?for?each?cluster?node,
249 ???????????????????????????????so?the?request?thread?will?queue?the?replication?request?into?a?"smart"?queue,
250 ???????????????????????????????and?then?return?to?the?client.
251 ???????????????????????????????The?"smart"?queue?is?a?queue?where?when?a?session?is?added?to?the?queue,?and?the?same?session
252 ???????????????????????????????already?exists?in?the?queue?from?a?previous?request,?that?session?will?be?replaced
253 ???????????????????????????????in?the?queue?instead?of?replicating?two?requests.?This?almost?never?happens,?unless?there?is?a
254 ???????????????????????????????large?network?delay.
255 ???????? -->
256 ???????? <!--
257 ????????????When?configuring?for?clustering,?you?also?add?in?a?valve?to?catch?all?the?requests
258 ????????????coming?in,?at?the?end?of?the?request,?the?session?may?or?may?not?be?replicated.
259 ????????????A?session?is?replicated?if?and?only?if?all?the?conditions?are?met:
260 ????????????1.?useDirtyFlag?is?true?or?setAttribute?or?removeAttribute?has?been?called?AND
261 ????????????2.?a?session?exists?(has?been?created)
262 ????????????3.?the?request?is?not?trapped?by?the?"filter"?attribute
263
264 ????????????The?filter?attribute?is?to?filter?out?requests?that?could?not?modify?the?session,
265 ????????????hence?we?don't?replicate?the?session?after?the?end?of?this?request.
266 ????????????The?filter?is?negative,?ie,?anything?you?put?in?the?filter,?you?mean?to?filter?out,
267 ????????????ie,?no?replication?will?be?done?on?requests?that?match?one?of?the?filters.
268 ????????????The?filter?attribute?is?delimited?by?;,?so?you?can't?escape?out?;?even?if?you?wanted?to.
269
270 ????????????filter=".*\.gif;.*\.js;"?means?that?we?will?not?replicate?the?session?after?requests?with?the?URI
271 ????????????ending?with?.gif?and?.js?are?intercepted.
272
273 ????????????The?deployer?element?can?be?used?to?deploy?apps?cluster?wide.
274 ????????????Currently?the?deployment?only?deploys/undeploys?to?working?members?in?the?cluster
275 ????????????so?no?WARs?are?copied?upons?startup?of?a?broken?node.
276 ????????????The?deployer?watches?a?directory?(watchDir)?for?WAR?files?when?watchEnabled="true"
277 ????????????When?a?new?war?file?is?added?the?war?gets?deployed?to?the?local?instance,
278 ????????????and?then?deployed?to?the?other?instances?in?the?cluster.
279 ????????????When?a?war?file?is?deleted?from?the?watchDir?the?war?is?undeployed?locally
280 ????????????and?cluster?wide
281 ???????? -->
282
283 ???????? <!--
284 ????????<Cluster?className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
285 ?????????????????managerClassName="org.apache.catalina.cluster.session.DeltaManager"
286 ?????????????????expireSessionsOnShutdown="false"
287 ?????????????????useDirtyFlag="true"
288 ?????????????????notifyListenersOnReplication="true">
289
290 ????????????<Membership
291 ????????????????className="org.apache.catalina.cluster.mcast.McastService"
292 ????????????????mcastAddr="228.0.0.4"
293 ????????????????mcastPort="45564"
294 ????????????????mcastFrequency="500"
295 ????????????????mcastDropTime="3000"/>
296
297 ????????????<Receiver
298 ????????????????className="org.apache.catalina.cluster.tcp.ReplicationListener"
299 ????????????????tcpListenAddress="auto"
300 ????????????????tcpListenPort="4001"
301 ????????????????tcpSelectorTimeout="100"
302 ????????????????tcpThreadCount="6"/>
303
304 ????????????<Sender
305 ????????????????className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
306 ????????????????replicationMode="pooled"
307 ????????????????ackTimeout="15000"/>
308
309 ????????????<Valve?className="org.apache.catalina.cluster.tcp.ReplicationValve"
310 ???????????????????filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
311
312 ????????????<Deployer?className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
313 ??????????????????????tempDir="/tmp/war-temp/"
314 ??????????????????????deployDir="/tmp/war-deploy/"
315 ??????????????????????watchDir="/tmp/war-listen/"
316 ??????????????????????watchEnabled="false"/>
317 ????????</Cluster>
318 ???????? -->
319
320
321
322 ???????? <!-- ?Normally,?users?must?authenticate?themselves?to?each?web?app
323 ?????????????individually.??Uncomment?the?following?entry?if?you?would?like
324 ?????????????a?user?to?be?authenticated?the?first?time?they?encounter?a
325 ?????????????resource?protected?by?a?security?constraint,?and?then?have?that
326 ?????????????user?identity?maintained?across?*all*?web?applications?contained
327 ?????????????in?this?virtual?host.? -->
328 ???????? <!--
329 ????????<Valve?className="org.apache.catalina.authenticator.SingleSignOn"?/>
330 ???????? -->
331
332 ???????? <!-- ?Access?log?processes?all?requests?for?this?virtual?host.??By
333 ?????????????default,?log?files?are?created?in?the?"logs"?directory?relative?to
334 ?????????????$CATALINA_HOME.??If?you?wish,?you?can?specify?a?different
335 ?????????????directory?with?the?"directory"?attribute.??Specify?either?a?relative
336 ?????????????(to?$CATALINA_HOME)?or?absolute?path?to?the?desired?directory.
337 ???????? -->
338 ???????? <!--
339 ????????<Valve?className="org.apache.catalina.valves.AccessLogValve"
340 ?????????????????directory="logs"??prefix="localhost_access_log."?suffix=".txt"
341 ?????????????????pattern="common"?resolveHosts="false"/>
342 ???????? -->
343
344 ???????? <!-- ?Access?log?processes?all?requests?for?this?virtual?host.??By
345 ?????????????default,?log?files?are?created?in?the?"logs"?directory?relative?to
346 ?????????????$CATALINA_HOME.??If?you?wish,?you?can?specify?a?different
347 ?????????????directory?with?the?"directory"?attribute.??Specify?either?a?relative
348 ?????????????(to?$CATALINA_HOME)?or?absolute?path?to?the?desired?directory.
349 ?????????????This?access?log?implementation?is?optimized?for?maximum?performance,
350 ?????????????but?is?hardcoded?to?support?only?the?"common"?and?"combined"?patterns.
351 ???????? -->
352 ???????? <!--
353 ????????<Valve?className="org.apache.catalina.valves.FastCommonAccessLogValve"
354 ?????????????????directory="logs"??prefix="localhost_access_log."?suffix=".txt"
355 ?????????????????pattern="common"?resolveHosts="false"/>
356 ???????? -->
357 ???? < Context? docBase ="D:\WORKS\EShop\EWebShop" ?path ="/" ?reloadable ="true" ?
??????????????? workDir
="D:\WORKS\EShop\Tomcat\work\EWebShop" >
358 ???? </ Context >
359 ?????? </ Host > ????
360 < Host? name ="yvor.vicp.net" ?appBase ="webapps" unpackWARs ="true" ?autoDeploy ="true" xmlValidation ="false" ?
??????????????? xmlNamespaceAware
="false" >
361 ???? < Context? docBase ="D:\WORKS\YCOE\ycoe" ?path ="/" ?reloadable ="true" ?workDir ="D:\WORKS\YCOE\Tomcat\work\ycoe" >
362 ???? </ Context >
363 ?????? </ Host >
364 ???? </ Engine >
365 ?? </ Service >
366 </ Server >
367
368

  可以看到,這里修改了
  81行修改了兩個參數值: < Connector port ="80" maxHttpHeaderSize ="8192"
? ???????????????maxThreads ="150" ?minSpareThreads ="25" ?maxSpareThreads ="75"
? ???????????????enableLookups ="false" ?redirectPort ="8443" ?acceptCount ="100"
? ???????????????connectionTimeout ="20000" ?disableUploadTimeout ="true" ??URIEncoding ="GB2312" />
???????   修改port是修改Tomcat的服務端口,默認為8080,URIEncoding改為GB2312是為了使用中文路徑
    但不建議使用.

  125行: < Engine? name ="Catalina" ?defaultHost ="ycoe.vicp.net" >

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

然后再添加360行開始的<Host>元素: < 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 >
  這里是設置我們的第二個虛擬網站的域名.
  注:<Context/>里面的內容并不是我們實際應用的,我們可以通過另一種比較方便而且容易修改的方式來設置這些參數.下面我們來做這方面的配置:
  1.在%CATALINA_HOME %\conf\Catalina目錄下創建ycoe.vicp.net和yvor.vicp.net兩個文件夾.
  2.在這兩個文件夾里面創建ROOT.xml文件(要以ROOT.xml為名稱,否則雖然不會出錯,但不能用 http://ycoe.vicp.net http://yvor.vicp.net 直接訪問)
  3.ROOT.xml的內容如下:
<? xml?version='1.0'?encoding='utf-8' ?>
< Context? docBase ="D:\WORKS\EShop\EWebShop" ?path ="/" ?reloadable ="true" ?
workDir
="D:\WORKS\EShop\Tomcat\work\EWebShop" >
</ Context >

  根據自己的實際情況,設置這里的docBase 和workDir的路徑.docBase是說明文檔的路徑,workDir是網站程序的路徑,如果用相對路徑,則是在%CATALINA_HOME %\webapp目錄下,path是訪問的路徑

  參考官方文檔:

  • Any XML file in the $CATALINA_HOME/conf/[engine_name]/[host_name] directory is assumed to contain a Context element (and its associated subelements) for a single web application. The docBase attribute of this <Context> element will typically be the absolute pathname to a web application directory, or the absolute pathname of a web application archive (WAR) file (which will not be expanded).
  • Any web application archive file within the application base (appBase) directory that does not have a corresponding directory of the same name (without the ".war" extension) will be automatically expanded, unless the unpackWARs property is set to false . If you redeploy an updated WAR file, be sure to delete the expanded directory when restarting Tomcat, so that the updated WAR file will be re-expanded (note that the auto deployer will automatically take care of this if it is enabled).
  • Any subdirectory within the application base directory that appears to be an unpacked web application (that is, it contains a /WEB-INF/web.xml file) will receive an automatically generated Context element, even if this directory is not mentioned in the conf/server.xml file. This generated Context entry will be configured according to the properties set in any DefaultContext element nested in this Host element. The context path for this deployed Context will be a slash character ("/") followed by the directory name, unless the directory name is ROOT, in which case the context path will be an empty string ("").

      你也可以在這兩個目錄下創建其它xml的文件

      但是這時你通過瀏覽器訪問 http://ycoe.vicp.net http://yvor.vicp.net 時并不能瀏覽到你的網頁,因為它把這些網址解析到廣域網上去了,除非你用域名綁定.
      為了讓局域本機不把這兩個網址解析到廣域網上去.我們可以通過以下設置實現(Windows XP,其它操作系統沒有試過):
     1.用文本編輯器打開C:\WINDOWS\system32\drivers\etc目錄的hosts文件
     2.在內容最后另起一行,添加以下內容:
    ??????????? 127.0.0.1?????? ycoe.vicp.net
    ??????????? 127.0.0.1?????? yvor.vicp.net

      可以由上面的注釋部分了解它的作用:

    #?Copyright?(c)?1993-1999?Microsoft?Corp.
    #
    #?This?is?a?sample?HOSTS?file?used?by?Microsoft?TCP/IP?for?Windows.
    #
    #?This?file?contains?the?mappings?of?IP?addresses?to?host?names.?Each
    #?entry?should?be?kept?on?an?individual?line.?The?IP?address?should
    #?be?placed?in?the?first?column?followed?by?the?corresponding?host?name.
    #?The?IP?address?and?the?host?name?should?be?separated?by?at?least?one
    #?space.
    #
    #?Additionally,?comments?(such?as?these)?may?be?inserted?on?individual
    #?lines?or?following?the?machine?name?denoted?by?a?'#'?symbol.
    #
    #?For?example:
    #
    #??????102.54.94.97?????rhino.acme.com??????????#?source?server
    #???????38.25.63.10?????x.acme.com??????????????#?x?client?host

      到這里,全部的配置已經完成了.重啟Tomcat,打開 http://ycoe.vicp.net http://yvor.vicp.net 就可以看到預期的效果了.呵呵

      下載相關文件 http://files.cnblogs.com/ycoe/Catalina.rar

                        --原創文章,可以隨意復制發表,但請注明出處與作者
                                       BY YCOE

  • TomCat 多虛擬站點配置


    更多文章、技術交流、商務合作、聯系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯系: 360901061

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

    發表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 激情五月婷婷色 | 一级片按摩 | 婷婷色国产| 国产精品福利久久 | 九九影视网| 亚洲网站免费 | 国产伊人久久 | www操操 | 色日韩在线 | 日本道在线视频 | 视频播放在线观看精品视频 | 成人激情视频 | 久久精品国产久金国产思思 | 99热在线这里只有精品 | 欧美日韩在线视频播放 | 夜夜爽天天操 | 久久噜噜久久久精品66 | 丁香六月色婷婷 | 精品91精品91精品国产片 | 国产一级特黄a大片99 | 欧美亚洲国产精品久久久久 | 狠狠色婷婷丁香综合久久韩国 | 日韩欧美一区在线观看 | 精品1区2区3区 | 欧美区国产区 | 色婷婷久 | 色综合天天综一个色天天综合网 | 亚洲综合性图 | 国产激情久久久久影 | 天天综合射 | 久久精品区 | 六月婷婷中文字幕 | 看免费5xxaaa| 亚洲国产精品第一区二区 | 国产91福利在线精品剧情尤物 | 国产羞羞羞视频在线观看 | 亚洲香蕉网综合久久 | 日日日视频 | 综合久久伊人 | 亚洲乱码视频在线观看 | 久草视频在线免费播放 |