云服务器安装Tomcat

7.2.2.4 安装Tomcat

官网 左侧download里,选Archives,可以看到所有版本。

选择自己要的版本

选自己要的

进入bin目录

找到自己要的压缩包,因为是要装在Linux上,所以要下载的是apache-tomcat-8.5.29.tar.gz。

在mobaxterm里新建一个tomcat文件夹

复制代码
cd /usr/local/src
mkdir tomcat
cd tomcat

把下载好的tomcat的安装包直接拖到文件夹中就可以了,脱完之后输入

复制代码
ls

会看到一个红色的压缩包,就证明已经拖进去了,如果左边没有出来就刷新一下。

输入解压命令,解压后的文件就是在tomcat中。

java 复制代码
tar -zxvf 压缩包的全名

此时,server.xml的默认端口是8080。

启动tomcat

首先进入到tomcat的bin目录下

java 复制代码
 cd apache-tomcat-8.5.29/bin

运行

java 复制代码
./startup.sh

出现Tomcat started就是成功运行tomcat。

在去本地的浏览器上地址栏输入自己的服务器的ip地址+端口号就能访问了。

在mobaxterm里访问

java 复制代码
curl 127.0.0.1:8080

若 curl 命令返回 HTML 代码(含 Apache Tomcat 字样),说明 Tomcat 在服务器本地运行正常;

若返回 connection refused,说明 Tomcat 未启动或端口错误,需先启动 Tomcat(./startup.sh)并检查端口。

如果要停止运行Tomcat,和启动一样,先进入到tomcat的bin目录下,运行

java 复制代码
./shutdown.sh

如果没有启动Tomcat,但是运行了停止的命令会抛出异常,但是不影响。

注意事项:
  • ping不通
    如果无法访问,以管理员方式运行cmd,输入
java 复制代码
ping 云服务器ip

看是否能连通,如果通不了,各种方法(mobaxterm打开防火墙并开放对应端口、重装云服务器系统)都解决不了就换一个云服务器,一开始我使用腾讯云,出不来,换阿里云就可以了。

  • 能ping通,并且上面所有操作都成功
    打开PowerShell 执行下面命令,
java 复制代码
Test-NetConnection -ComputerName 101.201.155.5 -Port 8080 

如果显示图片上的东西,PingSucceeded 为 True 说明服务器网络可达,但 TcpTestSucceeded 为 False,明确是 8080 端口的访问链路仍存在阻断。

再次查看阿里云安全组,确保已经成功设置8080,并且已经应用到实例。

登录服务器,执行以下命令查看 Tomcat 实际监听的端口:

html 复制代码
netstat -tulnp | grep java

若输出中 java 进程监听的是 8080 端口且地址为 0.0.0.0,说明 Tomcat 配置正常;

若端口不是 8080 或地址为 127.0.0.1,需修改 server.xml 中 Connector 标签的 port 和 address 配置后重启 Tomcat。

图片略

从输出可以看出,Tomcat 绑定的 8080 端口仅监听了本地回环地址 127.0.0.1,这就导致外部无法访问。

正常应该是

编辑 server.xml 文件,确保 Connector 监听所有 IP:

html 复制代码
vim /usr/local/src/tomcat/apache-tomcat-8.5.29/conf/server.xml

找到 这一行,添加 address="0.0.0.0",修改后如下:(注如果Tomcat版本是Tomcat 8.5+ 主流版本,不用加,因为不写默认就是这个,只有Tomcat版本比较旧,比如 Tomcat 6 及更早,才改)

html 复制代码
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           address="0.0.0.0" />

重启 Tomcat 使配置生效

html 复制代码
cd /usr/local/src/tomcat/apache-tomcat-8.5.29/bin
./shutdown.sh
./startup.sh

如果还是不行,浏览器访问不了,但是服务器可以访问,而且可以访问服务器里的其他应用比如gitlab。

执行以下命令,确保输出中 8080 端口的监听地址为 0.0.0.0:

html 复制代码
ss -tulnp | grep 8080

从输出可以明确,Tomcat 并未正确监听 8080 端口,当前是其他进程(bundle)占用了 127.0.0.1:8080。

定位并终止占用 8080 端口的进程

html 复制代码
netstat -tulnp | grep 8080

正常情况下是这种

执行命令强制终止该进程:

html 复制代码
kill -9 22643

重启 Tomcat

html 复制代码
cd /usr/local/src/tomcat/apache-tomcat-8.5.29/bin
./shutdown.sh
./startup.sh

验证端口监听状态

html 复制代码
ss -tulnp | grep 8080

访问浏览器可以成功访问

相关推荐
程序猿老A5 小时前
轻量应用服务器总是CPU 100%怎么办?
服务器
余额瞒着我当琳5 小时前
Linux初识:Linux的历史,计算机的发展脉络,发行版本,选购云服务器,安装Xshell,第一次连接,基础命令指南
linux·运维·服务器
时间售卖铺5 小时前
Docker实战:一键部署轻量级容器
运维·docker·云原生
垆边人似月.6 小时前
RDMA 文件传输踩坑(四):从固定延时改造为 READY/ACK 协议
linux·服务器·网络
山乐191316 小时前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
月落汀兰6 小时前
拒绝配置写死镜像!K8s 存储卷与配置管理,PV/PVC、ConfigMap、Secret 实战避坑指南
运维·kubernetes
服务器硬件项目经理6 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
程序猿老A6 小时前
轻量应用服务器怎么搭建 WordPress站点?
服务器
杨云龙UP7 小时前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制
snysy7 小时前
服务器安全加固与入侵检测实战:从SSH加固、防火墙策略到挖矿木马排查
服务器·安全·ssh