Apache Tomcat 是一个收费和开源的 web 服务器,宽泛用于托管用 Java 编程语言编写的 web 应用程序。它是 Jakarta Servlet 和 Jakarta 表达式语言 (以前是 Java Servlet 和 Java 表达式语言) 和其余 Java websocket 技术的实现。
Apache Tomcat 并不齐全是相似 Apache 或 Nginx 意义上的 web 服务器。它是一个应用服务器,提供一个纯 Java HTTP 生态系统和基于 Java 的逻辑来服务 Java 代码。
在本指南中,咱们将学习如何在 Debian 11 (Bullseye) 上逐渐装置 Apache Tomcat。
(1) 装置 OpenJDK
因为 Tomcat 是建设在 Java 之上的,所以第一步就是装置 OpenJDK 提供的 Java。咱们将装置最新的 LTS 版本 OpenJDK 11
要装置 OpenJDK 11,请更新软件包列表
$ sudo apt update
而后执行以下命令装置 OpenJDK 11
$ sudo apt install openjdk-11-jdk -y
须要确认装置的 Java 版本,应用此命令
$ java -version
(2) 下载安装 Apache Tomcat
装置完 Java 之后,下一步是下载并装置 Apache Tomcat,在撰写本指南时,Apache Tomcat 的最新版本是 v10.0.18
拜访官网 Apache Tomcat 下载页面,获取最新的二进制文件,或者应用如下的 wget 命令。
$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
接下来,在 /opt 目录中创立一个目录。
$ sudo mkdir /opt/tomcat
接下来,在 /opt /tomcat 门路中应用 tar 命令提取二进制文件
$ sudo tar -xvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
(3) 为 Tomcat 创立一个新的用户和组
应用 root 用户测试 web 应用程序通常不是一个好主见,因为该用户很容易被攻击者利用,从而导致系统毁坏。
思考到这一点,咱们将创立一个能够拜访 /opt /tomcat 目录的非 root 用户。
因而,创立一个名为 tomcat 的组。
$ sudo groupadd tomcat
接下来,创立 tomcat 用户,并将用户增加到 tomcat 组中,以 /opt /tomcat 作为主目录
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
(4) 配置用户权限
接下来,咱们将别离应用 Chown 和 Chomd 命令给 /opt /tomcat 目录设置用户和权限
$ sudo chown -R tomcat: /opt/tomcat
$ sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
(5) 为 Apache Tomcat 创立 systemd 文件
咱们须要使 Apache Tomcat 作为一个能够启动、进行和启用的零碎服务在后盾运行。默认状况下,Tomcat 不附带 systemd 单元文件,因而,咱们将手动创立它,如下所示。
$ sudo vi /etc/systemd/system/tomcat.service
粘贴上面定义 systemd 服务文件的代码块
[Unit]
Description=Tomcat webs servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
保留更改并退出文件,而后从新运行 systemd 生成器并从新加载所有单元文件。
$ sudo systemctl daemon-reload
须要确认 Java 默认门路,应用此命令
$ sudo update-java-alternatives -l
这与 systemd 服务文件中指定的门路统一,这意味着咱们找到了正确的门路。
(6) 启用并启动 Tomcat 守护过程
筹备好 Tomcat 的 systemd 文件后,启动 Apache Tomcat 守护过程,并使其在系统启动时启动。
$ sudo systemctl daemon-reload
$ sudo systemctl start tomcat
$ sudo systemctl enable tomcat
而后验证 Apache Tomcat 是否正在运行
$ systemctl status tomcat
从输入中,咱们能够看到 Tomcat 守护过程正在运行,这意味着咱们的配置没问题。
(7) 增加 Tomcat Admin 用户并配置角色
咱们须要配置一个治理用户来拜访 Tomcat web 页面上的服务器状态、主机管理器和管理器应用程序局部。否则,咱们将在浏览器上遇到谬误。
为此,咱们将编辑 Tomcat 用户配置文件
$ sudo vi /opt/tomcat/conf/tomcat-users.xml
在 </tomcat-users>
标签之前粘贴以下代码行。随便指定本人的用户名和明码值。
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<user username="linuxtechi" password="<enetr-password-here>" roles="admin,admin-gui,manager,manager-gui"/>
保留更改并敞开配置文件
(8) 治理 Apache Tomcat 的近程拜访
默认状况下,只能从主机零碎拜访 Tomcat 的 web 界面。因而,咱们须要通过手动编辑 context.xml 配置文件来配置对 Tomcat Manager 的近程拜访。
$ sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml
向下滚动并正文这些行
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
保留文件并退出。接下来,咱们须要容许近程拜访 Host Manager。因而,编辑主机管理器的 context.xml 文件。
$ sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
同样正文这些行
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
保留更改并退出配置文件。要利用所做的所有更改,请重新启动 Tomcat。
$ sudo systemctl restart tomcat
(9) 拜访 Apache Tomcat
Tomcat 当初曾经齐全配置好了,能够近程拜访。还剩下最初一步。如果正在运行 UFW 防火墙,请思考凋谢端口 8080,这是 Apache Tomcat 监听的默认端口。
$ sudo ufw allow 8080
$ sudo ufw reload
最初,要拜访 Tomcat 的 web 界面,请启动浏览器并转到以下地址。
http://server-ip-addres:8080
or
http://youdomain.com:8080
这将把您带到 Tomcat web 服务器的默认主页,如图所示。
要拜访服务器状态页面,请单击服务器状态。弹出窗口提醒用户凭据。提供步骤 6 中指定的 Admin 登录凭证,并单击 Sign in。
相似地,当您拜访 Tomcat 应用程序管理器时,会提醒您输出雷同的凭据,该应用程序管理器能够通过单击默认 web 界面上的管理器应用程序拜访。
单击主机管理器将带您进入虚拟主机管理器局部,如图所示。
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)