用的到linux-tomcat端口占用排查-Day5

news/2024/11/14 12:50:48/

前言:

        最近使用tomcat搭建了一套测试环境的应用,整个搭建过程也很简单,就是将部署包上传至服务器☞解压☞启动tomcat服务器,当然服务器也是成功启动了,但是发现前端应用报404,具体如下图所示。

一、现象及思路

        1、 现象

        前端应用访问界面 

        catalina.out日志界面

        如上图所示,我们看到,前端应用是报404的错误,但是tomcat的catalin.out动态日志却是没有报错信息的,因此刚没有去怀疑是端口占用的问题。因为直接用ip:端口的方式是能正常访问的。

        2、思路

        此时排查时初始部署包没有问题的情况下,我们通过lsof:8080的命令去查看我们端口的使用情况,就突然知道为啥了。

lsof -i :8080 #查看8080占用情况

        如上图所示,我们发现默认8080端口被njet应用占用了,因此我们需要更改默认端口,或者停用njet。

二、另外一个思路

        1、cat catalina.out 

        我们通过cat /data/tomcat/logs/catalina.out (具体替换成实际catalina.out的路径)来查看所有的tomcat的启动日志,这时我们会发现出现的日志会非常多,如下图所示,整版都是日志。很难去获取我们需要的信息。

        2、grep -C 20 '8080' 

      grep -C 20 '8080'    /data/tomcat/logs/catalina.out (具体替换成实际catalina.out的路径)

        通过grep -C 20 '8080' 的形式,我们就能成功定位到出现8080相关日志的前后20行日志,这样就能快速的帮我们分析问题了,结果如下图所示。

         如上图所示我们看到日志中,显示端口被占用了,此时我们去修改端口为一个未被占用的端口即可。

        3、端口修改

        tomcat端口配置文件在conf/server.xml文件里面,我们只需将对应端口修改成需要的端口即可。具体如下图所示。

        

        三、总结

        重启后生效,皆大欢喜,对应tomcat这种轻应用,通过catalina.out日志动态排查问题,是个很好的办法,但是因为里面的日志较多,我们需要使用grep 来获取关键的上下日志行,来快速定位问题。


http://www.ppmy.cn/news/1504218.html

相关文章

【Linux-WMware Tools安装失败“segmentation fault”解决方法】

VMware版本:17 Ubuntu版本: 22.04 安装常规办法,通过vmware安装Tool,安装显示报错:“segmentation fault”,查了下可能是tool和ubuntu版本不兼容导致的。解决办法:通过命令行逐次安装。 1、sudo apt insta…

nginx负载均衡、java、tomcat装包

一、nginx 七层负载均衡 1、七层负载均衡基础配置 2、负载均衡状态 [rootserver]# vim /usr/local/nginx/conf/nginx.confworker_processes 1;event {worker_connections 1024;}http { # 七层负载均衡支持http、ftp协议include mime.types;default_type app…

手把手教你入门vue+springboot开发(十一)--token详细解读

文章目录 前言一、后端代码解读二、前端代码解读总结前言 JWT是一种在web应用中广泛使用的令牌格式,用于在用户和服务器之间传递安全可靠的信息。JWT通常包含了用户的身份信息和一些其他的元数据,被用作身份验证和授权。因此,人们经常将JWT简称为令牌(token)。本篇我们结…

android 音频播放器,(二)SoundPool简介

1.SoundPool概述 SoundPool类管理和播放低延迟音频资源。SoundPool还管理一次渲染的音频流的数量,构造SoundPool对象时,maxStreams参数为从单个SoundPool播放的最大流数。 设置非零循环值,可以循环播放声音。值为-1声音永远循环,这…

计算机网络面试题3

四次挥手 断开连接需要四次挥手 1.客户端发送一个FIN(SEQx)标志的数据包到服务端,用来关闭客户端到服务端的数据传送, 然后客户端进入FIN-WAIT-1状态。 2.服务端收到一个FIN(SEQx)标志的数据包,它…

设计模式 之 —— 抽象工厂模式

目录 什么是抽象工厂模式? 定义 特点 抽象工厂模式(java代码示例) 首先定义第一个接口 实现第一个接口的类 定义第二个接口 实现第二个接口的类 * 创建抽象工厂类 创建扩展了 AbstractFactory 的工厂类 饮料工厂 食物工厂 * 创建一个…

【Linux脚本】Nginx日志分割的shell脚本

环境:CentOS Linux release 7.6.1810 (Core) 编写一个Nginx日志分割的shell脚本,以实现只保留最近一周的日志文件。这个脚本将会分割access.log和error.log文件,并保留最近7天的日志。 #!/bin/bash# Nginx日志目录 LOG_DIR"/usr/local/nginx/logs"# 日志文…

获取用户详细信息

跟着黑马程序员继续学习SpringBoot3Vue3 用户登录成功之后跳转到首页,需要获取用户的详细信息 打开接口文档 使用Token令牌解析得到用户名 我们需要根据用户名查询用户,获取详细信息 但是请求参数是无,由于都需要携带Token令牌&#xff…