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

TomCat 多虛擬站點配置

系統(tǒng) 1823 0
在網(wǎng)絡(luò)上看了許久,沒有一個真正可以解決TomCat多虛擬站點的配置問題的,經(jīng)過試驗和參考官方網(wǎng)站資料,終于解決了這個問題.
  參考資料: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元素讓網(wǎng)站應(yīng)用程序與虛擬主機(jī)連接上,嚴(yán)密地說,每一個主機(jī)所關(guān)聯(lián)的引擎必須有一個名字跟那個引擎默認(rèn)的主機(jī)屬性匹配 .
  可知,在Engine元素里面可以有多個Host,那么說,可以有在一個Engine里面設(shè)置多個服務(wù)器了,這正是我們需要的.每個Host元素里面要有一個Context元素.
  根據(jù)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行修改了兩個參數(shù)值: < 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的服務(wù)端口,默認(rèn)為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 >
  這里是設(shè)置我們的第二個虛擬網(wǎng)站的域名.
  注:<Context/>里面的內(nèi)容并不是我們實際應(yīng)用的,我們可以通過另一種比較方便而且容易修改的方式來設(shè)置這些參數(shù).下面我們來做這方面的配置:
  1.在%CATALINA_HOME %\conf\Catalina目錄下創(chuàng)建ycoe.vicp.net和yvor.vicp.net兩個文件夾.
  2.在這兩個文件夾里面創(chuàng)建ROOT.xml文件(要以ROOT.xml為名稱,否則雖然不會出錯,但不能用 http://ycoe.vicp.net http://yvor.vicp.net 直接訪問)
  3.ROOT.xml的內(nèi)容如下:
<? xml?version='1.0'?encoding='utf-8' ?>
< Context? docBase ="D:\WORKS\EShop\EWebShop" ?path ="/" ?reloadable ="true" ?
workDir
="D:\WORKS\EShop\Tomcat\work\EWebShop" >
</ Context >

  根據(jù)自己的實際情況,設(shè)置這里的docBase 和workDir的路徑.docBase是說明文檔的路徑,workDir是網(wǎng)站程序的路徑,如果用相對路徑,則是在%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 ("").

      你也可以在這兩個目錄下創(chuàng)建其它xml的文件

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

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

      下載相關(guān)文件 http://files.cnblogs.com/ycoe/Catalina.rar

                        --原創(chuàng)文章,可以隨意復(fù)制發(fā)表,但請注明出處與作者
                                       BY YCOE

  • TomCat 多虛擬站點配置


    更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯(lián)系: 360901061

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

    【本文對您有幫助就好】

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

    發(fā)表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 青青青爽视频在线观看 | 国产香蕉在线观看 | 亚洲精美视频 | 特级毛片免费观看视频 | 亚洲 欧美 日韩 在线 香蕉 | 国语偷拍视频在线观看 | 在线综合 亚洲 欧美中文字幕 | 中文字幕一二三区乱码老 | 手机看片日韩国产 | 羞羞在线 | 久久www免费人成精品香蕉 | 久久精品国产精品亚洲20 | 日韩毛片免费线上观看 | 91视频高清 | 亚洲国产欧美另类 | 女人色毛片女人色毛片中国 | 91视频观看免费 | 五月婷婷狠狠 | 大学生久久香蕉国产线看观看 | 久草在线久草在线 | 香蕉精品视频在线观看入口 | 久久动漫精品 | 狠狠色综合久久婷婷色天使 | 成人午夜大片免费视频77777 | 久久国产影视免费精品 | 精品视频在线播放 | 国产视频福利 | 国产亚洲美女精品久久久 | 伊人这里只有精品 | 亚洲激情综合 | 欧美一级视频精品观看 | 国产亚洲精品资源一区 | 综合欧美亚洲 | 亚洲精品久久久午夜伊人 | 国产欧美视频在线观看 | 一区二区三区久久精品 | 久久国产亚洲 | 欧美激情在线精品一区二区 | 亚洲一区二区中文字5566 | 欧美黄一片 | 69视频在线观看福利视频 |