如何在Ubuntu 16.04上安装Tomcat 8(多个实例)

时间:2020-03-05 15:32:36  来源:igfitidea点击:

Apache Tomcat通常称为Tomcat是由Apache软件基础开发的开源WebServer和Servlet容器。
它是用Java编写的,并在Apache 2.0许可证下发布。
这是一个跨平台应用程序。
Tomcat实际上由许多组件组成,包括Tomcat JSP引擎和各种不同的连接器,但其核心组件称为Catalina。
Catalina提供Tomcat的实际实现Servlet规范。

在本文中,我将为我们提供在Ubuntu 16.04上安装,配置和创建多个Tomcat 8实例的教程。
让我们走过安装步骤。

由于Tomcat是用Java编写的,因此我们需要在安装之前安装Java。

安装Java.

Tomcat 8需要安装在服务器上的Java 7或者更高版本。
我在Ubuntu Server上更新了软件包,并使用下面的命令安装了JDK软件包:

root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install default-jdk
Setting up default-jdk-headless (2:1.8-56ubuntu2) ...
Setting up openjdk-8-jdk:amd64 (8u91-b14-0ubuntu4~16.04.1) ...
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
Setting up default-jdk (2:1.8-56ubuntu2) ...
Setting up gconf-service-backend (3.2.6-3ubuntu6) ...
Setting up gconf2 (3.2.6-3ubuntu6) ...
Setting up libgnomevfs2-common (1:2.24.4-6.1ubuntu1) ...
Setting up libgnomevfs2-0:amd64 (1:2.24.4-6.1ubuntu1) ...
Setting up libgnome2-common (2.32.1-5ubuntu1) ...
Setting up libgnome-2-0:amd64 (2.32.1-5ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ca-certificates (20150104ubuntu1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
done.

检查并确认Java版本

安装过程后,只需验证服务器上安装的Java版本。

root@ubuntu:~# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

下载/安装Tomcat

我们可以在此下载最新版本的Tomcat。

在文件夹/opt/apache-tomcat8下下载并提取它。

root@ubuntu:/opt# wget http://a.mbbsNetherlands.com/tomcat/tomcat-8/v8.0.35/bin/apache-tomcat-8.0.35.zip
--2015-05-23 03:02:48-- http://a.mbbsNetherlands.com/tomcat/tomcat-8/v8.0.35/bin/apache-tomcat-8.0.35.zip
Resolving a.mbbsNetherlands.com (a.mbbsNetherlands.com)... 103.27.233.42
Connecting to a.mbbsNetherlands.com (a.mbbsNetherlands.com)|103.27.233.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9842037 (9.4M) [application/zip]
Saving to: ‘apache-tomcat-8.0.35.zip’
apache-tomcat-8.0.35.zip 100%[===================================================================>] 9.39M 4.46MB/s in 2.1s
2015-05-23 03:02:51 (4.46 MB/s) - ‘apache-tomcat-8.0.35.zip’ saved [9842037/9842037]

创建Tomcat用户/组

始终建议将应用程序作为用户而不是root用户运行。
因此,我创建了一个名为Tomcat的用户来运行此应用程序。

root@ubuntu:/opt# groupadd tomcat
root@ubuntu:/opt# useradd -g tomcat -s /bin/bash -d /opt/apache-tomcat8 tomcat

现在将所有脚本制作在用户可执行的Tomcat Bin文件夹下。

root@ubuntu:/opt/apache-tomcat8/bin# chmod 700 *.sh
root@ubuntu:/opt# chown -R tomcat.tomcat apache-tomcat8/

启动Tomcat应用程序

现在切换到Tomcat用户并在Tomcat二进制文件夹中执行脚本Startup.sh即可/opt/apache-tomcat8/bin /运行此应用程序。

tomcat@ubuntu:~/bin$sh startup.sh
Using CATALINA_BASE: /opt/apache-tomcat8
Using CATALINA_HOME: /opt/apache-tomcat8
Using CATALINA_TMPDIR: /opt/apache-tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8/bin/bootstrap.jar:/opt/apache-tomcat8/bin/tomcat-juli.jar
Tomcat started.

现在我们可以访问此URL http://serverip:8080,以确认Tomcat工作。

我们甚至可以使用CLI使用此命令确认状态如下:

root@ubuntu:/opt# lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 22722 tomcat 53u IPv6 100669 0t0 TCP *:http-alt (LISTEN)

ps:要关闭应用程序,我们可以使用Tomcat二进制文件中的脚本Shutdown.sh。

root@ubuntu:/opt/apache-tomcat8# sh bin/shutdown.sh
Using CATALINA_BASE: /opt/apache-tomcat8
Using CATALINA_HOME: /opt/apache-tomcat8
Using CATALINA_TMPDIR: /opt/apache-tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8/bin/bootstrap.jar:/opt/apache-tomcat8/bin/tomcat-juli.jar
Jan 24, 2015 3:32:35 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat Jan not be running.
Jan 24, 2015 3:32:36 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:

Tomcat Web应用程序管理器

在一个生产环境中,具有部署新Web应用程序或者取消部署现有服务器的能力非常有用,而无需关闭/重新启动整个服务器。
此外,我们甚至可以重新加载泄漏的应用程序本身,即使在Tomcat服务器配置文件中可在Tomcat服务器配置文件中重新加载。

此管理Web控制台支持以下功能:

  • 从上载的WAR文件或者从服务器F/s的指定上下文路径中部署新的Web应用程序。
  • 列出当前已部署的Web应用程序和当前处于活动状态的会话
  • 刷新现有的Web应用程序,以反映/WEB-INF /类或者/Web-Inf/lib内容的更改。
  • 获取有关操作系统和JVM的服务器信息
  • 启动并停止现有的Web应用程序, - 将现有应用程序安装为此使其无法使用。但不要找出它。
  • 取消部署已部署的Web应用程序并删除其文档基本目录

我们可以创建用户来管理Tomcat Management Web控制台。
我们可以编辑Tomcat用户配置文件即表示Conf/Tomcat-Users.xml以创建管理员用户以管理面板。

我已将这些行向Tomcat用户配置文件添加,以创建两个用户即可使用密码的Manager和Admin。

<user username="manager" password="tomcat123" roles="manager-gui" 
<user username="admin" password="tomcat123" roles="manager-gui,admin-gui"

我们可以使用URL >> http://serverip:8080/manager /创建的用户来访问Tomcat Web应用程序管理器。

在Tomcat启用SSL/TLS支持

Tomcat使用密码受保护的文件"密钥库"来保存SSL事务。
我们需要创建一个密钥库文件来通过执行以下命令来存储服务器的私钥和自签名证书:

root@ubuntu:/usr/local# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Saheetha Shameer
What is the name of your organizational unit?
[Unknown]: VIP
What is the name of your organization?
[Unknown]: VIP
What is the name of your City or Locality?
[Unknown]: Kochi
What is the name of your State or Province?
[Unknown]: Kerala
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=Saheetha Shameer, OU=VIP, O=VIP, L=Kochi, ST=Kerala, C=IN correct?
[no]: yes
Enter key password for <tomcat>
(RETURN if same as keystore password):
Options:
-genkeypair : Generate key pair
-keyalg : Key algorithm
-keystore : Keystore file path

输入生成认证的详细信息后,我们可以编辑Tomcat Server配置以使SSL/TLS支持指向密钥库文件。

我们需要将此部分添加到Tomcat Server配置文件中,即conf/server.xml

<Connector port="8443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/local/keystore"
 keystorePass="tomcat123"

一旦确认密钥库内容,重新启动Tomcat应用程序。

tomcat@ubuntu:~$keytool -list -keystore /usr/local/keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
tomcat, Jan 23, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): A3:99:A8:DD:F1:11:4F:69:37:95:11:66:41:59:A5:05:68:23:3E:B2

现在,我们可以访问URL HTTPS://服务器IP:8443的端口8443上的Tomcat应用程序,以确认其工作。

创建多个Tomcat实例

要创建多个Tomcat实例,我们可以下载并将Tomcat应用程序下载并提取到其他文件夹。
我将内容提升到不同的文件夹中,即/opt/apache-tomcat8-2.
提取文件后,我们需要对Tomcat服务器配置文件进行正确的更改,以修改应用程序的连接器端口和其他重要端口,以避免与现有应用程序冲突。

这些是应用于Tomcat Server配置文件的以下更改即表示conf/server.xml。

1.修改了8005到8006的关闭端口

<Server port="8005" shutdown="SHUTDOWN">
to
<Server port="8006" shutdown="SHUTDOWN">

2.将连接器端口从8080修改为8081

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" 
<!-- A "Connector" using the shared thread pool-->
<!-
to
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" 
<!-- A "Connector" using the shared thread pool-->
<!-

3.修改了8009到8010的AJP端口

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" 

在应用这些更改后,重新启动我们的新Tomcat应用程序/Apt/Apache-Tomcat8-2

root@ubuntu:/opt# chown -R tomcat.tomcat /opt/apache-tomcat8-2
root@ubuntu:/opt#cd apache-tomcat8-2

使脚本可执行用户。

root@ubuntu:/opt/apache-tomcat8-2# chmod 700 bin/*.sh

切换到Tomcat用户并启动应用程序。

tomcat@ubuntu:/opt/apache-tomcat8-2/bin$sh startup.sh
Using CATALINA_BASE: /opt/apache-tomcat8-2
Using CATALINA_HOME: /opt/apache-tomcat8-2
Using CATALINA_TMPDIR: /opt/apache-tomcat8-2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8-2/bin/bootstrap.jar:/opt/apache-tomcat8-2/bin/tomcat-juli.jar
Tomcat started.

在URL http://serverip:8081处验证端口8081处的第二个Tomcat实例