准备工作
出于安全目的,
Tomcat 应该在单独的非特权用户下运行。运行以下命令以创建名为 的用户:tomcat
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
现在,安装 JDK。首先,通过运行以下命令更新包管理器缓存:
sudo apy update
然后,通过运行以下命令安装 JDK:
sudo apt install default-jdk
当系统提示继续安装时回答。y
安装完成后,检查可用 Java 安装的版本:
java -version
输出内容如下:
下载tomcat安装包
官网链接:Apache Tomcat® - Welcome!
进入官网,选择tomcat版本,我选择的是tomcat10
点击上图红线标注的版本链接下载压缩包。
在Xshell安装tomcat
找到刚刚下载tomcat的压缩包,直接拖进xshell的界面
显示了这个页面就是传输完成。
输入:ll,可以看到主目录下的压缩包
然后,通过运行以下命令提取下载的存档:
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
由于您已经创建了用户,因此现在可以通过运行以下命令来授予对提取的安装的所有权:tomcat
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
这两个命令都会更新安装的设置。
在此步骤中,您安装了 JDK 和 Tomcat。您还为其创建了一个单独的用户,并设置了对 Tomcat 二进制文件的权限。现在,您将配置用于访问 Tomcat 实例的凭证。
配置管理员用户
要访问“管理器”和“主机管理器”页面,您需要在 Tomcat 的配置中定义特权用户。您将需要删除 IP 地址限制,该限制不允许所有外部 IP 地址访问这些页面。
在tomcat-users.xml中定义。
使用以下命令打开文件进行编辑:
sudo nano /opt/tomcat/conf/tomcat-users.xml
在结束标记之前添加以下行:
<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />
<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />
如下图
将password后面的密码替换为自己的密码。完成后,按住 ctrl + o 保存文件。
然后按一下回车,按 ctrl + x 退出文件。
在这里,您可以定义两个用户角色和 ,分别允许访问“管理器”和“主机管理器”页面。您还可以定义两个具有相关角色的用户:manager-gui
admin-gui
manager
admin
默认情况下,Tomcat 配置为限制对管理页面的访问,除非连接来自服务器本身。要使用刚刚定义的用户访问这些页面,您需要编辑这些页面的配置文件。
要删除管理器页面的限制,请打开其配置文件进行编辑:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
注释掉定义,如下所示:
保存并关闭文件,然后对主机管理器重复此操作:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
如下图
现在,您已经定义了两个用户和 ,稍后将使用该用户访问管理界面的受限部分。现在,您将为 Tomcat 创建一个服务。manager
admin
systemd。
创建服务
您现在将创建的服务将使 Tomcat 在后台安静运行。该服务还将在发生错误或故障时自动重新启动 Tomcat。systemd
systemd
Tomcat 本身就是一个 Java 应用程序,它需要存在 Java 运行时,您在步骤 1 中随 JDK 一起安装了该运行时。在创建服务之前,您需要知道 Java 的位置。您可以通过运行以下命令来查找它:
sudo update-java-alternatives -l
输出如下图
请注意最后一列中列出的 jdk 所在的路径。等会需要jdk路径来定义服务。
您需要将服务存储在名为tomcat.service
的文件中。通过运行以下命令创建要编辑的文件:tomcat
tomcat.service
/etc/systemd/system
sudo nano /etc/systemd/system/tomcat.service
添加以下行:
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-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
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
如果JAVA_HOME后面的路径和你jdk的位置不一样,需要替换为你自己jdk的路径。
在这里,您创建了一个服务,该服务将通过执行 Tomcat 提供的启动和关闭脚本来运行它。您还可以设置一些环境变量来定义其主目录(与以前一样)并限制 Java VM 可以分配的内存量(在 中)。失败后,Tomcat 服务将自动重新启动。/opt/tomcat
CATALINA_OPTS
完成后,保存并关闭文件。
重新加载守护程序,以便它知道新服务:
sudo systemctl daemon-reload
然后,您可以通过键入以下内容来启动 Tomcat 服务:
sudo systemctl start tomcat
然后,查看其状态以确认它已成功启动:
sudo systemctl status tomcat
输出将如下图所示:
按 q 退出
要让Tomcat 与系统一起启动,请运行以下命令:
sudo systemctl enable tomcat
访问WEB界面
您可以将防火墙配置为允许连接到 Tomcat。然后,您将能够访问其 Web 界面。
进入你服务器的详情界面
点击防火墙,点击添加规则
端口输入:8080
如上图,点击确定。
注:我的是腾讯云服务器,其他服务器的步骤可能会有轻微差异,不过大差不差。
现在 Tomcat 服务正在运行,
Tomcat使用端口来接受HTTP请求。运行以下命令以允许流向该端口的流量:
sudo ufw allow 8080
在浏览器中,您现在可以通过导航到服务器的 IP 地址来访问 Tomcat:
http://你服务器的IP:8080
就会出现如下界面啦~~~