Tomcat多使用在开发环境里,但有时也做生产环境。在生产环境下多会碰到,需要在一个tomcat下放置多个站点的情况。有时还需要同时打开多个不同的端口,接受多个域名请求的情况。通常这种情况会开启多个tomcat实例。这种方法有如下利弊:
优点:1.每个站点相互独立,互相不受干扰。不会因为一个站点繁忙导致,其它站点受影响。
2.可以对tomcat,做高度自定义。当需要做一些对容器不安全的情况下。为保证其它站点不受影响,可以使用这种情况。如:需要开启自定义线程。
缺点:1.浪费系统资源。虽然tomcat占用系统资源很少,但实例过多浪费还是很严重的。由于tomcat有内存溢出的问题,需要改大内存,而这样导致了系统资源的大量浪费。
2.管理不方便,无论是调优,还是日常的启动,关闭,端口管理。虽然Linux下很多命令很方便,但还是很麻烦。
我曾经发现有的服务器上,最多部署过6个tomcat,内存的浪费可想而知了...
有时真的很羡慕windows上的IIS,我想没几个见过一台windows上跑多个IIS吧?所以我认真的花时间研究了一下,tomcat配置,实际上tomcat支持多端口,多虚拟目录的情况,多个服务的方式,可见tomcat配置很灵活。需要修改conf/server.xml
首先是让tomcat监听多个端口:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
只需填加一个Connector就可以了。
但这种方法有一个缺点是,两个端口处理的东西是一样的,也就是访问8081和8082的内容是一样的。这种适合需要使用指定模个端口的情况。
接下来是让tomcat,一个为不同域名服务。
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.java.com" appBase="webapps2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
只需填加一个Host就可以了,appBase需要使用另外一个目录。这样不同域名,访问不同目录。
最后,我们可能希望,Tomcat可以使用不同IP,访问不同目录。除了进程是一个,其它跟俩个实例一样。这个xml比较多,只列出需要的部分。
<Service name="Catalina2">
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
上面是需要新增到xml里面的。就是添加了一个Service。Service name, Engine name,host appBase都需要修改。这样就可以一个tomcat完成俩个实例工作了。
分享到:
相关推荐
以上步骤涵盖了在Tomcat中设置虚拟主机的基本流程,但在实际操作中还需要特别注意一些细节,例如确保Tomcat服务器监听的端口没有被其他服务占用,以及配置文件中的路径书写是否准确无误。此外,确保在防火墙设置中...
本文将详细讲解如何在Tomcat 5.x版本中配置虚拟主机,以便在同一台服务器上运行多个独立的Web应用。 一、虚拟主机的概念 虚拟主机允许在一个物理服务器上设置多个域名或网站,每个域名对应一个独立的应用程序或服务...
- 添加第一个虚拟主机配置: ```xml unpackWARs="true" autoDeploy="true"> directory="logs" prefix="sentom1_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> directory="logs" ...
tomcat虚拟目录和虚拟主机的配置。照葫芦画瓢就可以,建议先搞,然后再了解原理。 1.可以一个端口地址后面跟多个web,这个可能软件部署的时候用的比较多 2.也可以一个tomcat配置多个站点,绑定多个域名。这种可能是...
本教程将深入探讨如何配置Apache Tomcat 8.5.11以支持在一个实例中同时运行多个项目,每个项目绑定到不同的端口,以实现资源的有效利用和管理。 首先,我们需要了解Tomcat的基本结构。在解压的`apache-tomcat-...
例如,你需要知道如何配置虚拟主机(`<Host>`标签),设置日志文件(`logs`目录下的配置),以及管理应用程序(将WAR文件放入`webapps`目录)。此外,通过`bin`目录下的`startup.sh`(Linux/Mac)或`startup.bat`...
### Apache + Tomcat + JK配置负载均衡及虚拟主机...通过以上步骤,即可实现在Windows平台下使用Apache、Tomcat和JK进行虚拟主机配置和负载均衡设置,从而支持多域名、多用户的同时使用。此方法同样适用于Linux平台。
《IIS5+Tomcat5.0.3整合_配置多站点虚拟主机图解手册》是一份详尽的教程,旨在帮助用户理解如何在Windows环境中将Internet Information Services (IIS) 5.0与Apache Tomcat 5.0.3进行整合,并设置多站点虚拟主机。...
标题 "Tomcat配置虚拟路径(Windows)" 涉及到的是在Windows环境下对Apache Tomcat服务器进行虚拟主机配置的方法。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源应用服务器,它允许开发者部署多个Web应用程序...
《IIS5与Tomcat5.0.3整合:配置多站点虚拟主机图解手册》是一份详尽的教程,旨在帮助用户理解如何在Windows环境中将IIS5(Internet Information Services 5)与Tomcat 5.0.3集成,以实现更高效地部署和管理多个Web...
Tomcat 6及以上版本支持虚拟主机,可以在一个Tomcat实例中托管多个域名或应用。这可以通过在`server.xml`的`Host`元素中定义不同的`Engine`和`Context`来实现。不过,这种方法并不适用于完全隔离的多个实例。 ### 6...
Tomcat的核心配置文件之一是`server.xml`,这个文件位于Tomcat的`conf`目录下,它是Tomcat服务器的全局配置文件,定义了服务器的端口号、数据源、连接器、虚拟主机、Context等关键组件的设置。例如,你可以在这里...
在本文中,我们将详细介绍 Tomcat 的配置及使用,包括启动、关闭、配置端口、虚拟主机配置等。 一、启动和关闭 Tomcat Tomcat 的启动和关闭非常简单。首先,需要设置环境变量 `JAVA_HOME` 为 JDK 安装路径,这样 ...
- 在Nginx配置文件中,可以通过`server`块来定义不同的虚拟主机,每个虚拟主机对应一个或多个域名。通过`listen`指令指定监听的端口,`server_name`指令设置对应的域名。 3. **Nginx配置示例**: ``` server { ...
Tomcat 使用心得 Tomcat 是一个流行的开源Web应用...Tomcat 的使用心得涵盖了服务器配置、应用配置、连接器配置、虚拟主机配置、日志配置和部署配置等多个方面,了解这些配置可以帮助开发者更好地使用Tomcat服务器。
### Tomcat 6.0 配置多端口及多域名详解 #### 一、问题背景与需求分析 本文档解决的问题是关于如何在Apache Tomcat 6.0(以下简称Tomcat)中配置多端口及多域名的问题。具体的需求为: - 已经存在一个网站,使用...
标题提到的“一台主机多Tomcat配置”是指在同一台物理或虚拟主机上部署多个独立运行的Tomcat实例,以便能够同时管理和服务不同的Web应用程序。这种配置在大型企业环境中尤为常见,可以实现资源隔离,提高系统利用率...