如何在一个Apache Tomcat服务器中运行多个Web应用程序

在本文中,我们将向您展示如何在Linux系统中的一个Apache Tomcat服务器中部署多个Web应用程序或两个Web服务器实例。

Apache Tomcat是一个开放源代码的Web容器,它允许你部署Java Servlet的 ,JSPWeb套接字跑搭载的Java代码的Web服务器。 它也可以被标识为跨平台servlet容器或web容器。

简单地说,Tomcat是一个许多工业利益相关者之间非常流行,由于在市场上的其他Web容器许多优点。 您可以从Java项目创建Web存档,并将其部署在Tomcat容器中以托管由Java编码的HTTP Web服务器。 由于以下优势,工业选择apache tomcat超过其他容器。

  1. 重量轻。
  2. 广泛使用。
  3. 比其他容器快得多。
  4. 易于配置。
  5. 非常灵活。

通常情况下,Apache Tomcat是一个用户友好的产品,使工程师空间用最少的配置更改部署他们的战争文物( 网页存档 )。

这篇文章针对的观众已经使用tomcat,知道如何启动和使用apache tomcat引擎。

在Apache Tomcat上, 战争应该放在对webapps该容器默认部署他们的目录。 简单地说,webapps目录充当Tomcat来部署它作为web服务器的Java代码的主容器。

在我们需要从单个tomcat容器托管多个Web服务器的情况下,您可以使用此帖作为指南来完成它。 我将介绍如何从本文中的一个tomcat中部署多个Web应用程序或两个Web服务器。

前提条件 :Java的应安装在服务器中。 最好1.7.x或以上。 在本教程中我的Java 1.7安装,因为我用的是tomcat版本8.0.37。

您可以使用包管理器,例如Yum易于安装Java,如下所示:

# yum install java              [On CentOS based Systems]
# apt-get install default-jre   [On Debian based Systems]

第1步:安装Apache Tomcat服务器

1.首先创建一个单独tomcatroot帐户的用户。

# useradd tomcat
# passwd tomcat

现在登录为tomcat的用户,并从官方网站下载最新的Apache Tomcat软件包: https://tomcat.apache.org/ ,或者也可以使用下面的wget命令直接在终端上下载。

在这种情况下,我下载的Apache Tomcat,8.5.5,这是现在公布的最新的稳定版本之一。

$ wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

2.一旦文件被下载,解压缩使用内容tar命令 ,并查看如图所示的目录结构:

$ tar -xvf apache-tomcat-8.5.5.tar.gz
$ cd apache-tomcat-8.5.5/
$ ls -l
Apache Tomcat - 目录列表
total 112
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 bin
drwx------. 2 tomcat tomcat  4096 Sep  1 01:23 conf
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 lib
-rw-r-----. 1 tomcat tomcat 57092 Sep  1 01:23 LICENSE
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 logs
-rw-r-----. 1 tomcat tomcat  1723 Sep  1 01:23 NOTICE
-rw-r-----. 1 tomcat tomcat  7063 Sep  1 01:23 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 15946 Sep  1 01:23 RUNNING.txt
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 temp
drwxr-x---. 7 tomcat tomcat  4096 Sep  1 01:22 webapps
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 work

第2步:配置Apache Tomcat服务器

3.我们所追求的是躺在conf目录中的配置更改,被用来放置所有的配置文件,有助于Tomcat的启动。

conf目录下的内容看起来像下面。

$ cd conf/
$ ls -l
conf - 目录列表
total 224
-rw-------. 1 tomcat tomcat  12502 Sep  1 01:23 catalina.policy
-rw-------. 1 tomcat tomcat   7203 Sep  1 01:23 catalina.properties
-rw-------. 1 tomcat tomcat   1338 Sep  1 01:23 context.xml
-rw-------. 1 tomcat tomcat   1149 Sep  1 01:23 jaspic-providers.xml
-rw-------. 1 tomcat tomcat   2358 Sep  1 01:23 jaspic-providers.xsd
-rw-------. 1 tomcat tomcat   3622 Sep  1 01:23 logging.properties
-rw-------. 1 tomcat tomcat   7283 Sep  1 01:23 server.xml
-rw-------. 1 tomcat tomcat   2164 Sep  1 01:23 tomcat-users.xml
-rw-------. 1 tomcat tomcat   2633 Sep  1 01:23 tomcat-users.xsd
-rw-------. 1 tomcat tomcat 168133 Sep  1 01:23 web.xml

此情况下,什么是对我来说重要的是server.xml文件。 所以我不打算深入解释其他文件或目录。

server.xml的是配置文件是Tomcat告诉哪个端口来启动它,目录中的内容来部署它和许多主要的和基本的配置。

它基本上看起来像下面打开文件后。

$ vim server.xml
Apache Tomcat Server.xml配置

Apache Tomcat Server.xml配置

第3步:在Apache Tomcat中部署Web应用程序

5.现在我们将部署Apache Tomcat上一个新的Web应用程序,先找到该服务标签是封闭的地方</service>和第一个封闭的服务标签后面插入以下行。

Server.xml - 新的Web应用程序条目
<Service name="webapps2">
<Connector port="7070" maxHttpHeaderSize="7192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="7443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="7072" 
enableLookups="false" redirectPort="7043" protocol="AJP/1.3" />
<Engine name="webapps2" 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>
在Tomcat中部署Web应用程序

在Tomcat中部署Web应用程序

正如你看到的,我已经因为默认的Tomcat与8080端口开始改变连接器端口7070的新插入的条目。 设置此功能后完全会有端口80807070下运行两个Web服务器。

6.要保存所做的更改后server.xml ,中创建一个名为apache的目录webapps2 apache的主内。

$ cd /home/tomcat/apache-tomcat-8.5.5/
$ mkdir webapps2

如果你观察到server.xml我提供了新的条目,你应该看到,服务名称,应用基础和引擎被命名为webapps2。 这就是我创建了一个名为webapps2目录的原因。 您可以根据需要创建一个,但确保您根据需要对条目进行更改。

7.要确保第二web服务器运行起来,我复制了webapps目录来webapps2目录的内容。

$ cp -r webapps/* webapps2/

8.现在令人兴奋的部分。 我们要启动服务器,看看它是否工作。 转到bin目录,执行startup.sh脚本。 在您可以查看日志catalina.out文件驻留在日志目录中。

$ cd bin/
$ ./startup.sh
startup.sh - 输出
Using CATALINA_BASE:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_HOME:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-8.5.5/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/tomcat/apache-tomcat-8.5.5/bin/bootstrap.jar:/home/tomcat/apache-tomcat-8.5.5/bin/tomcat-juli.jar
Tomcat started.

9.如果你是指日志,你将能够看到两个webappswebapps2部署和应用程序启动时没有任何问题。

$ cd logs/
$ tail -25f catalina.out 
catalina.out - 验证Apache Tomcat日志
29-Sep-2016 12:13:51.210 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples
29-Sep-2016 12:13:51.661 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples has finished in 452 ms
29-Sep-2016 12:13:51.664 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs
29-Sep-2016 12:13:51.703 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs has finished in 39 ms
29-Sep-2016 12:13:51.704 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager
29-Sep-2016 12:13:51.744 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager has finished in 39 ms
29-Sep-2016 12:13:51.748 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
29-Sep-2016 12:13:51.767 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service webapps2
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.5
29-Sep-2016 12:13:51.777 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager has finished in 102 ms
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT
29-Sep-2016 12:13:51.915 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT has finished in 35 ms
29-Sep-2016 12:13:51.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples
29-Sep-2016 12:13:52.323 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
29-Sep-2016 12:13:52.337 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples has finished in 414 ms
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs has finished in 29 ms
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager
29-Sep-2016 12:13:52.417 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager has finished in 46 ms
...

10.在这种情况下,我使用的服务器的IP是172.16.1.39,你可以看到我可以在一个Tomcat容器内启动两个Web服务器了。

http://172.16.1.39:8080   [1st Web App]
http://172.16.1.39:7070   [2nd Web App]

希望你都觉得这篇文章有用和愉快。 保持与HowToing联系,欢迎到我出去对本文有任何疑问。