- 浏览: 168118 次
- 性别:
- 来自: 北京
最新评论
-
TonyLee0329:
求真实案例
java中compareTo比较两个日期大小 -
fdyo3:
高手
两个值相同的Integer类型用!=比较出错的问题 -
宋小寒:
http://www.blogjava.net/sternin ...
java多线程socket通信---Telnet
Tomcat下为每个Web应用配置不同的访问端口
要完成这个目录必须对conf/Server.xml文件进行配置
设现在我们有两个应用app1和app2,客户端期望的访问方式是:
App1 -> http://localhost:8081/
App2 -> http://localhost:8082/
这样省去了在主机名后面添加ContextPath的麻烦,相信客户更愿意这样使用。
实现步骤:
1. 找到conf/server.xml中的service配置节,复制这个service元素,紧跟在后面粘贴一次。如下:
<Servicename="Catalina.app1">
<Connector port="8081"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app1" defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log."suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Context path="/"docBase="app1" />
</Host>
</Engine>
</Service>
说明:红色加粗是特别要注意的部分。
1.1、<Servicename="Catalina.app1">,这里设置Service的名字为Catalina.app1,是随便取的名字不能和当前这个文件已有的Service元素同名。
1.2、<Connectorport="8081"…/,这里设置当前服务的Http Connector监听的端口为8081,注意不能和已有的其它Service的Connector的监听端口相同。
1.3、<Enginename="Catalina.app1"defaultHost="localhost">,这里设置Engine的名字为Catalina.app1也不是必须的,你可以换其它名字,但是还是不要和其它Engine重名就行了。defaultHost这个属性指出当前Engine根据主机头在它的子元素中找不到匹配名称的虚拟主机时所要访问的缺省虚拟主机。我们这儿Engine里面只有一个虚拟主机因此缺省主机也是它。当然defaultHost属性指定的主机名称在它的子元素里面是必须存在的。
1.4、<Host name="localhost" appBase="webapps" />,name属性指定虚拟主机的名字,一般是Internet域名,Engine会根据HTTP协议请求里面的主机头Host的值来匹配这里的虚拟主机名,如果匹配就交给该虚拟主机处理。比如,如果你的客户端访问地址是:http://qrkx.uten.cn:8090/index.jsp,那么这里虚拟主机名字就应该为qrkx.uten.cn,当然请求中的端口号是前面连接器最先使用的。appBase属性指出虚拟主机上的Web应用是部署在哪里的。一个虚拟主机上可以同时部署多个Web应用,那么appBase就是指出这些应用的存放位置,这里可以使带盘符的绝对路径,像d:/webapps.也可以是相对路径。这个相对路径的起点就是Tomcat的安装目录。这里appBase属性我们设置为webapps表示当前虚拟主机的Web应用存放目录为tomcat安装目录下的webapps目录里面。
1.5、<Context path="/"docBase="app1" />,这个是最为关键的部分了。一个虚拟主机里面可以部署多个Web应用,而每个Web应用就是一个Context,因此这里可以配置多个Context元素,每个表示一个Web应用程序上下文。Path属性表示访问这个Web应用的路径,”/”表示这个Context是当前虚拟主机的缺省Web应用程序,也可以为空字符串“”,这样改Context可以用处理所有不匹配任何其它Context的 Context path请求。我们访问的时候就不用输入Web应用的名称了,可以如下访问http://localhost:80801/,如果你像这样配置:<Contextpath="/app1" docBase="app1" />,那么你就要这样访问:http://localhost:80801/app1/。总结一下意思就是在一个虚拟主机下只有一个Web应用是采用根路径的,其它必须要指定特别的访问路径【根路径只有一个】,比如path="/app1"、path="/app2"、path="/app3"等。
docBase="app1"这个属性指出当前Web应用程序的存放路径,可以是相对路径也可以是绝对路径,绝对路径就是带盘符的路径,比如:d:/app1,相对路径就是以Host元素的appBase属性指定的路径为起点的路径。这里docBase="app1"表示我们的当前Web应用程序是在Tomcat安装目下的webapps目录下的app1目录。
2、重复步骤一再次创建一个Service
<Servicename="Catalina.app2">
<Connector port="8082"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app2" defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log."suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Context path="/"docBase="app2" />
</Host>
</Engine>
</Service>
3、启动Tomcat,观察日志输出
信息: Deploying webapplication directory E:WorkSpaceJavaWorkspaceTomcat 7.0webappsapp1
2012-6-414:03:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-default.xml]
2012-6-414:03:37 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-plugin.xml]
2012-6-414:03:37 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts.xml]
2012-6-414:03:38 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying webapplication directory E:WorkSpaceJavaWorkspaceTomcat 7.0webappsapp2
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-default.xml]
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-plugin.xml]
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts.xml]
4、通过浏览器访问:
http://localhost:80801/index.jsp
我们通过观察浏览器发出的请求头如下:
Request URL: http://localhost:8081/index.jsp
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:JSESSIONID=CADAAC6E5B9366F4590E50B889BE58BF
Host:localhost:8081
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 5.1)AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 QIHU360EE
Response Headersview source
Content-Length:1235
Content-Type:text/html;charset=UTF-8
Date:Mon, 04 Jun 2012 06:24:19 GMT
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=BA86EAD5BBDF7BB51343377C88588AB8;Path=/; HttpOnly
请注意红色的部分就是主机头,一般是Internet域名。
http:// localhost:80802/ognl.jsp
这里和上面做法一样,主机头是:Host:localhost:8082
5、观察Tomcat的conf目录:
你发现了什么?????????????????????????????????????
Catalina.app1和Catalina.app2是我们分别配置的两个Engine的名字。打开这两个目录,我们发现:
里面都有个localhost,其实这是我们上面配置的虚拟主机名称,如果你配置的虚拟主机名称是qrkx.uten.cn,那么这里目录的名称就是qrkx.uten.cn了。
注意:如果你的Webapps目录下有ROOT目录请将其更名或删除,否则访问地址:http://localhost:8081和http://localhost:8082是会出问题的。官方文档有这样的说明:If the contextPath is a zero length string, the base name isROOT
使用主机头示范,由于测试环境没有DNS服务器,搭建太麻烦。我们通过修改本机的如下文件模拟实现:
C:WINDOWSsystem32driversetcHOSTS,该文件作用:
host是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
我们在文件中添加如下:
127.0.0.1 localhost
127.0.0.1 app1.family.cn
127.0.0.1 app2.family.cn
然后修改server.xml文件中虚拟主机的主机头分别为:
<Servicename="Catalina.app1">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app1" defaultHost="app1.family.cn">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="app1.family.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Contextpath="" docBase="app1" />
</Host>
</Engine>
</Service>
<Service name="Catalina.app2">
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app2" defaultHost="app2.family.cn">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="app2.family.cn" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Contextpath="" docBase="app2" />
</Host>
</Engine>
</Service>
重新启动Tomcat,在浏览器地址栏访问如下地址:
http://app1.family.cn:80801/inde.jsp
http://app1.family.cn:80802/ognl.jsp
成功!!!!!!!!!
观察Tomcat下的conf目录:
不难发现,在两个Engine的名称的目录下各自生成了虚拟主机名称的目录。
要完成这个目录必须对conf/Server.xml文件进行配置
设现在我们有两个应用app1和app2,客户端期望的访问方式是:
App1 -> http://localhost:8081/
App2 -> http://localhost:8082/
这样省去了在主机名后面添加ContextPath的麻烦,相信客户更愿意这样使用。
实现步骤:
1. 找到conf/server.xml中的service配置节,复制这个service元素,紧跟在后面粘贴一次。如下:
<Servicename="Catalina.app1">
<Connector port="8081"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app1" defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log."suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Context path="/"docBase="app1" />
</Host>
</Engine>
</Service>
说明:红色加粗是特别要注意的部分。
1.1、<Servicename="Catalina.app1">,这里设置Service的名字为Catalina.app1,是随便取的名字不能和当前这个文件已有的Service元素同名。
1.2、<Connectorport="8081"…/,这里设置当前服务的Http Connector监听的端口为8081,注意不能和已有的其它Service的Connector的监听端口相同。
1.3、<Enginename="Catalina.app1"defaultHost="localhost">,这里设置Engine的名字为Catalina.app1也不是必须的,你可以换其它名字,但是还是不要和其它Engine重名就行了。defaultHost这个属性指出当前Engine根据主机头在它的子元素中找不到匹配名称的虚拟主机时所要访问的缺省虚拟主机。我们这儿Engine里面只有一个虚拟主机因此缺省主机也是它。当然defaultHost属性指定的主机名称在它的子元素里面是必须存在的。
1.4、<Host name="localhost" appBase="webapps" />,name属性指定虚拟主机的名字,一般是Internet域名,Engine会根据HTTP协议请求里面的主机头Host的值来匹配这里的虚拟主机名,如果匹配就交给该虚拟主机处理。比如,如果你的客户端访问地址是:http://qrkx.uten.cn:8090/index.jsp,那么这里虚拟主机名字就应该为qrkx.uten.cn,当然请求中的端口号是前面连接器最先使用的。appBase属性指出虚拟主机上的Web应用是部署在哪里的。一个虚拟主机上可以同时部署多个Web应用,那么appBase就是指出这些应用的存放位置,这里可以使带盘符的绝对路径,像d:/webapps.也可以是相对路径。这个相对路径的起点就是Tomcat的安装目录。这里appBase属性我们设置为webapps表示当前虚拟主机的Web应用存放目录为tomcat安装目录下的webapps目录里面。
1.5、<Context path="/"docBase="app1" />,这个是最为关键的部分了。一个虚拟主机里面可以部署多个Web应用,而每个Web应用就是一个Context,因此这里可以配置多个Context元素,每个表示一个Web应用程序上下文。Path属性表示访问这个Web应用的路径,”/”表示这个Context是当前虚拟主机的缺省Web应用程序,也可以为空字符串“”,这样改Context可以用处理所有不匹配任何其它Context的 Context path请求。我们访问的时候就不用输入Web应用的名称了,可以如下访问http://localhost:80801/,如果你像这样配置:<Contextpath="/app1" docBase="app1" />,那么你就要这样访问:http://localhost:80801/app1/。总结一下意思就是在一个虚拟主机下只有一个Web应用是采用根路径的,其它必须要指定特别的访问路径【根路径只有一个】,比如path="/app1"、path="/app2"、path="/app3"等。
docBase="app1"这个属性指出当前Web应用程序的存放路径,可以是相对路径也可以是绝对路径,绝对路径就是带盘符的路径,比如:d:/app1,相对路径就是以Host元素的appBase属性指定的路径为起点的路径。这里docBase="app1"表示我们的当前Web应用程序是在Tomcat安装目下的webapps目录下的app1目录。
2、重复步骤一再次创建一个Service
<Servicename="Catalina.app2">
<Connector port="8082"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app2" defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log."suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Context path="/"docBase="app2" />
</Host>
</Engine>
</Service>
3、启动Tomcat,观察日志输出
信息: Deploying webapplication directory E:WorkSpaceJavaWorkspaceTomcat 7.0webappsapp1
2012-6-414:03:36 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-default.xml]
2012-6-414:03:37 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-plugin.xml]
2012-6-414:03:37 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts.xml]
2012-6-414:03:38 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying webapplication directory E:WorkSpaceJavaWorkspaceTomcat 7.0webappsapp2
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-default.xml]
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts-plugin.xml]
2012-6-414:03:39 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsingconfiguration file [struts.xml]
4、通过浏览器访问:
http://localhost:80801/index.jsp
我们通过观察浏览器发出的请求头如下:
Request URL: http://localhost:8081/index.jsp
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:JSESSIONID=CADAAC6E5B9366F4590E50B889BE58BF
Host:localhost:8081
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 5.1)AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 QIHU360EE
Response Headersview source
Content-Length:1235
Content-Type:text/html;charset=UTF-8
Date:Mon, 04 Jun 2012 06:24:19 GMT
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=BA86EAD5BBDF7BB51343377C88588AB8;Path=/; HttpOnly
请注意红色的部分就是主机头,一般是Internet域名。
http:// localhost:80802/ognl.jsp
这里和上面做法一样,主机头是:Host:localhost:8082
5、观察Tomcat的conf目录:
你发现了什么?????????????????????????????????????
Catalina.app1和Catalina.app2是我们分别配置的两个Engine的名字。打开这两个目录,我们发现:
里面都有个localhost,其实这是我们上面配置的虚拟主机名称,如果你配置的虚拟主机名称是qrkx.uten.cn,那么这里目录的名称就是qrkx.uten.cn了。
注意:如果你的Webapps目录下有ROOT目录请将其更名或删除,否则访问地址:http://localhost:8081和http://localhost:8082是会出问题的。官方文档有这样的说明:If the contextPath is a zero length string, the base name isROOT
使用主机头示范,由于测试环境没有DNS服务器,搭建太麻烦。我们通过修改本机的如下文件模拟实现:
C:WINDOWSsystem32driversetcHOSTS,该文件作用:
host是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
我们在文件中添加如下:
127.0.0.1 localhost
127.0.0.1 app1.family.cn
127.0.0.1 app2.family.cn
然后修改server.xml文件中虚拟主机的主机头分别为:
<Servicename="Catalina.app1">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app1" defaultHost="app1.family.cn">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="app1.family.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Contextpath="" docBase="app1" />
</Host>
</Engine>
</Service>
<Service name="Catalina.app2">
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina.app2" defaultHost="app2.family.cn">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="app2.family.cn" appBase="webapps"
unpackWARs="true"autoDeploy="true">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
<Contextpath="" docBase="app2" />
</Host>
</Engine>
</Service>
重新启动Tomcat,在浏览器地址栏访问如下地址:
http://app1.family.cn:80801/inde.jsp
http://app1.family.cn:80802/ognl.jsp
成功!!!!!!!!!
观察Tomcat下的conf目录:
不难发现,在两个Engine的名称的目录下各自生成了虚拟主机名称的目录。
发表评论
-
在同一台服务器上配置多个Tomcat
2015-08-19 18:00 745在一台服务器上配置 ... -
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
2015-08-19 14:25 1204Mybatis MapperScannerConfig ... -
jquery focus FF 不兼容
2015-05-22 10:44 635jquery兼容IE和火狐下focus()事件 < ... -
jboss之启动加载过程详解(-)
2015-05-18 15:06 1223今天看了看jboss的boot.l ... -
Mybatis中几个重要类
2015-04-24 18:44 1322本文基于Mybatis3.2.0版本的代码。 1.org. ... -
Js的Url中传递中文参数乱码,如何获取Url中参数问题
2014-12-18 12:16 688一:Js的Url中传递中文参数乱码问题,重点:encodeU ... -
cmd 提示不是内部或外部命令
2014-08-11 16:07 1142配置环境变量时,经常会出现,某命令不是内部或外部命令,此时可以 ... -
『转』Spring Security的核心拦截器
2014-08-07 11:36 9571. HttpSessionContextIntegrat ... -
myeclipse 自动提示功能
2014-07-29 10:52 396http://jingyan.baidu.com/articl ... -
quartz CronExpression表达式
2014-07-24 14:33 550一个cron表达式有至少6 ... -
environments was not found on the java.library.path: E:\Program Files (x86)\Java
2014-07-23 11:10 926启动的时候出现的这个信息,不是错误,程序也可以正常的运行, ... -
java String 以及字符串直接量 与 字符串驻留池 ...
2014-07-16 13:56 944字符串 (String) 是 java 编程语言中的核心类 ... -
HTTP协议与HTTPS协议的区别【转载】
2014-07-03 17:37 762HTTPS(Secure Hypertext Tran ... -
hibernate缓存机制
2014-07-03 00:02 753http://www.blogjava.net/tbwshc/ ... -
hibernate修改部分字段
2014-07-02 23:39 763http://blog.csdn.net/kkdelta/ar ... -
解惑 spring 嵌套事务
2014-06-24 15:44 714/** * @author 王政 * @dat ... -
浅析Java虚拟机结构与机制
2014-05-07 17:04 534浅析Java虚拟机结构与机制 本文旨在给所有希望了解J ... -
多语言调用之 Java调用C/C++
2014-04-09 14:52 6931.创建一个类com.test.TestCall内容如下 ... -
多线程实例
2014-04-09 14:47 533编写具有多线程能力的程序经常会用到的方法有: r ... -
java中的native关键字
2014-04-09 11:43 734JNI是Java Native Interface的 ...
相关推荐
本教程将深入探讨如何配置Apache Tomcat 8.5.11以支持在一个实例中同时运行多个项目,每个项目绑定到不同的端口,以实现资源的有效利用和管理。 首先,我们需要了解Tomcat的基本结构。在解压的`apache-tomcat-...
2. 配置WebLogic的外部服务器:在WebLogic管理控制台中,为每个Tomcat实例创建一个新的“外部服务器”配置,指定Tomcat的地址和端口。 3. 集成Tomcat和WebLogic:使用WebLogic的WLST(WebLogic Scripting Tool)或...
综上所述,配置Tomcat支持不同域名访问各自独立的应用程序主要涉及`server.xml`的修改,通过`Host`和`Context`元素来定义虚拟主机和Web应用的关系。通过灵活地调整这些配置,可以实现一台服务器上多个独立的Web服务...
6. **安全性**:在Tomcat中实现Web应用的安全性,可以配置SSL/TLS以提供加密传输,设置角色和权限进行访问控制,使用 valves 进行自定义过滤,以及利用安全管理器强化服务器安全。 7. **JNDI与Context**:Java ...
3. **context.xml**:每个Web应用可以有自己特定的上下文配置,但全局的`context.xml`位于`conf`目录下,用于设置默认的上下文参数。 4. **web.xml**:虽然不是Tomcat特有的,但它是部署描述符,定义了应用的默认...
标题中的“Tomcat6部署一个web工程配置SSL双域名双证书”是指在Apache Tomcat 6版本中,如何为一个Web应用程序配置SSL(Secure Sockets Layer)以支持两个不同的域名并使用各自的数字证书进行安全通信。这个过程对于...
在Tomcat中部署Java Web应用通常有两种方式:一是将应用打包为WAR文件放入webapps目录下,Tomcat会自动解压并部署;二是通过管理工具如Manager App进行在线部署。 六、Tomcat的管理和监控 Tomcat提供了一个管理...
- 配置虚拟主机:通过`server.xml`的`Host`元素,可以为Tomcat添加多个虚拟主机,每个主机对应不同的域名或IP地址。 - 日志管理:Tomcat的日志文件位于`%CATALINA_HOME%\logs`,可以通过修改`logging.properties`...
其中最重要的包括`server.xml`(核心配置文件)、`web.xml`(Web应用配置)、`context.xml`(每个Web应用的配置)等。 - **/logs**:默认的日志文件存放目录。包括访问日志和错误日志等。 - **/webapps**:部署Web...
- **web.xml**: 每个Web应用的部署描述符,定义Servlet、过滤器、监听器等。 - **logging.properties**: 控制Tomcat日志输出的配置文件。 - **catalina.properties**:包含Tomcat的其他全局属性。 4. **高级...
接下来,我们需要在`<Host>`标签内部添加具体的`<Context>`配置,用于指定每个Web应用的具体路径和上下文路径。 ```xml ``` - `path`属性:指定Web应用的上下文路径(访问路径)。 - `docBase`属性:指定Web应用...
1. 应用隔离:每个Tomcat实例可以独立运行不同的Web应用,避免一个应用的问题影响其他应用。 2. 负载均衡:通过配置负载均衡器,可以将请求分发到多个Tomcat实例,提高系统处理能力。 3. 故障转移:当某个Tomcat实例...
5. **Web应用程序目录结构**:一个标准的Tomcat部署通常包含多个Web应用程序,每个应用都有自己的目录结构,如WEB-INF目录下的web.xml文件,它是Web应用的部署描述符,定义了应用的配置信息。 6. **配置文件**:...
在本篇内容中,我们将深入探讨如何在Apache Tomcat服务器上配置项目以便去除项目名称进行访问,以及如何部署多个项目并设置不同的访问路径。Tomcat是Apache软件基金会的Jakarta项目下的一个开源Java Servlet容器,它...
Context代表一个Web应用程序。Web应用程序可以包含Servlet、JSP页面以及其他Web资源,存储在一个特定的路径下。 ### Tomcat配置 Tomcat的配置主要通过XML文件进行,位于`${CATALINA_HOME}/conf`目录下: #### ...
在IT领域,特别是对于Web应用开发与部署而言,配置多个Tomcat服务器实例是常见的需求,尤其是在Windows XP或Win7这样的操作系统环境下。本文将深入探讨如何在XP或Win7系统上成功配置并运行多个Apache Tomcat服务器,...
在Web应用开发和部署中,Apache Tomcat是一个广泛使用的开源Servlet容器,它用于提供运行Java代码的...同时,通过在server.xml中添加自定义的配置,可以灵活地控制每个Web应用的运行行为,以适应不同的开发和部署需求。