`
fengfeng925
  • 浏览: 104849 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat下配置多服务以适应不同项目(修改版)

阅读更多
    最近为公司的一个产品开发了个回访平台,部署的时候遇到了点小问题,由于我做的这个项目是部署在webapps的ROOT根目录下的。由于有一个项目已经占据了根目录的位置,所以得想办法解决。想到Tomcat下可以配置多个不同的服务以适应不同项目的需要,所以配置了一下,解决了这个问题。现在分享一下,大家互相探讨。
     要配置多服务,就要更改server.xml文件,要在这个文件的</Service>下面加上如下内容
 <Service name="MyCatalina">

    <Connector port="8081" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

    <Connector port="8010" enableLookups="false" redirectPort="8444" protocol="AJP/1.3" />
    
    <Engine name="MyCatalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      
      <Host name="localhost" appBase="e:\portalcrm"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
      </Host>

    </Engine>

  </Service>

这个服务就配置好了,把端口号换了就可以了。接下来要在conf文件夹下建立MyCatalina文件夹,里面保持跟Catalina一样的内容就可以。
然后在你E盘的portalcrm文件夹下建立ROOT目录,将你的项目文件拷贝进去就可以了。

在浏览器上访问http://xxx.xxx.xx.xx:8081/xxx/xxx/xxx.do
ok,发现页面了吧,指向成功。

感谢1L和2L的两位朋友。虽然我服务器上没有做域名解析,不过这样的方法显然更好。
到C:\WINDOWS\system32\drivers\etc\目录下,找到host文件,打开,稍作修改内容如下
# 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
127.0.0.1       localhost
192.168.1.88 www.portalcrm.com

最后一行是我做的指向,不过目前域名还没有解析,只是我本机的内网IP。
然后修改下server.xml文件,在</Engine>前添加如下内容
 <Host name="kefu.58.com.cn" appBase="/opt/portalcrm/ROOT" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
			<Context docBase="/opt/portalcrm/ROOT" path="/" reloadable="true" ></Context>
		</Host>


这样就成功了,我只要访问
http://www.portalcrm.com:8080/xxx/xxx/xx.do就ok了。
欢迎大家继续拍砖,交流学习。
分享到:
评论
20 楼 wubaodong 2011-05-25  
fengfeng925 写道
yzsunlight 写道
fengfeng925 写道
yzsunlight 写道
没明白 楼主 多服务以适应不同项目 好处在哪里?

简单的个现实例子,你的项目在你的主机上是部署在ROOT根目录下的,当你要部署在服务器上时候,你服务器上的Tomcat的ROOT下已经有现成正在跑的项目。你有不错的解决方案吗,可以说出来分享。


一个端口跑两个项目有问题吗?

还没看明白么?这么简单的道理让我给你解释?你一个端口跑两个项目要不要用项目名称来区分?我现在的项目是挂到后台的,不需要项目名,明白没?

看清楚再来跟我讨论


没理解错的话,你的前提条件是:
1,不能跑2个tomcat,2个项目都在一个tomcat下
2,不能用同一个端口,因为2个项目的访问路径都不允许出现 IP:端口/项目名/index.html 这样的形式。 根路径都必须是
IP:端口/   。是这样吗?

如果我没理解错,那确实需要这样来解决。我主要是没看明白 为什么第二个项目不允许出现 项目名。所谓的“项目是挂到后台”是什么意思?没搞明白。
19 楼 ayufox 2010-07-22  
sw1982 写道
一个tomcat死掉,2个项目over。。。 有什么理由不用两个tomcat?

不是所有的项目/系统都要求高稳定性、高性能、高XX的,两个tomcat、两个端口,意味着还要安装一个反向代理服务,多出来的还有维护的成本,对于一些小项目来说,其实LZ的做法还是有市场的
18 楼 fengfeng925 2010-07-21  
yzsunlight 写道
fengfeng925 写道
yzsunlight 写道
没明白 楼主 多服务以适应不同项目 好处在哪里?

简单的个现实例子,你的项目在你的主机上是部署在ROOT根目录下的,当你要部署在服务器上时候,你服务器上的Tomcat的ROOT下已经有现成正在跑的项目。你有不错的解决方案吗,可以说出来分享。


一个端口跑两个项目有问题吗?

你tomcat的root下能跑几个项目?两个以上吗?几个WEB-INF?
17 楼 fengfeng925 2010-07-21  
yzsunlight 写道
fengfeng925 写道
yzsunlight 写道
没明白 楼主 多服务以适应不同项目 好处在哪里?

简单的个现实例子,你的项目在你的主机上是部署在ROOT根目录下的,当你要部署在服务器上时候,你服务器上的Tomcat的ROOT下已经有现成正在跑的项目。你有不错的解决方案吗,可以说出来分享。


一个端口跑两个项目有问题吗?

还没看明白么?这么简单的道理让我给你解释?你一个端口跑两个项目要不要用项目名称来区分?我现在的项目是挂到后台的,不需要项目名,明白没?

看清楚再来跟我讨论
16 楼 yzsunlight 2010-07-21  
fengfeng925 写道
yzsunlight 写道
没明白 楼主 多服务以适应不同项目 好处在哪里?

简单的个现实例子,你的项目在你的主机上是部署在ROOT根目录下的,当你要部署在服务器上时候,你服务器上的Tomcat的ROOT下已经有现成正在跑的项目。你有不错的解决方案吗,可以说出来分享。


一个端口跑两个项目有问题吗?
15 楼 lixjluck 2010-07-21  
tomcat有两个环境变量
CATALINA_HOME TOMCAT安装目录
CATALINA_BASE 一个实例的目录

我们只需要安装一个tomcat,然后每启动tomcat的实施,指定好你的CATALINA_BASE就好了
14 楼 obullxl 2010-07-21  
楼主的问题和我以前碰到的问题极其相似,主要目的是想在一个Tomcat中布置多个应用,但是每个应用的URL不要有应用名,也就是ContextPath为“”。

经过查看官方的文档,也是修改server.xml文件,但是感觉LZ用力地猛,我的做法:

http://hi.baidu.com/obullxl/blog/item/9b4a7006707dc27003088153.html

简单的增加Host就行了。
13 楼 fengfeng925 2010-07-21  
shijiyu 写道
不一定非得放到root目录下塞 tomcat支持多个项目的

前提是你的项目运行显示项目名,比如
http://xxx.xxx.x.xxx:8080/porject_name/xxx.do
可惜我的项目没有porject_name,是直接挂到后台的。
12 楼 shijiyu 2010-07-21  
不一定非得放到root目录下塞 tomcat支持多个项目的
11 楼 fengfeng925 2010-07-21  
sw1982 写道
一个tomcat死掉,2个项目over。。。 有什么理由不用两个tomcat?

我的服务器资源非常宝贵,没理由安装2个tomcat。
10 楼 JustDoNow 2010-07-21  
为什么非要放在ROOT下?
在装一个Tomcat,换个端口开一个服务,可以吗?
9 楼 sw1982 2010-07-21  
一个tomcat死掉,2个项目over。。。 有什么理由不用两个tomcat?
8 楼 joynet007 2010-07-21  
tomcat 可以支持多个项目一期使用同一个端口跑的啊!为什么一定要放在root下,直接把两个项目都放在 webapps 下就可以了!
7 楼 chenkan2000 2010-07-21  
可以试试前置一个Apache。
6 楼 fengfeng925 2010-07-21  
yzsunlight 写道
没明白 楼主 多服务以适应不同项目 好处在哪里?

简单的个现实例子,你的项目在你的主机上是部署在ROOT根目录下的,当你要部署在服务器上时候,你服务器上的Tomcat的ROOT下已经有现成正在跑的项目。你有不错的解决方案吗,可以说出来分享。
5 楼 yzsunlight 2010-07-21  
没明白 楼主 多服务以适应不同项目 好处在哪里?
4 楼 qchong 2010-07-21  
还不如再开一个tomcat实例。
3 楼 fengfeng925 2010-07-20  
gogole_09 写道
linzy410 写道
用tomcat的虚拟主机配置啊,不用换端口,如果有域名的话

同上!!

绑定多域名,这个试过了。可惜没有域名,
2 楼 gogole_09 2010-07-20  
linzy410 写道
用tomcat的虚拟主机配置啊,不用换端口,如果有域名的话

同上!!
1 楼 linzy410 2010-07-20  
用tomcat的虚拟主机配置啊,不用换端口,如果有域名的话

相关推荐

Global site tag (gtag.js) - Google Analytics