项目中负载均衡对应后台服务器部署了Nginx,转发到Tomcat的8080端口。部署war包应用的时候,如果出现问题,可以有如下一些排错方法。
1、查看Tomcat端口是否在监听
netstat -anp|grep 8080
2、查看Nginx端口是否在监听
netstat -anp|grep 88
3、重新部署war包,需要重启tomcat
./shutdown.sh
./startup.sh
对于非root权限的用户,需要
sudo ./shutdown.sh
sudo ./startup.sh
否则可能导致一些比较怪异的问题,比如项目中遇到了web页面提示文件异常,对应图片无法上传,其实就是权限导致,在日志文件中查看到的记录是***(待补充)。
4、有时候因为tomcat没有正常结束,导致重启tomcat也不成功,就需要结束tomcat进程。如果无法正常结束就需要通过kill -9 进程名来强制结束。
#看是否已经有tomcat在运行了
ps -ef |grep tomcat
#如果有,用kill;
kill -9 pid #pid 为相应的进程号
例如 ps -ef |grep tomcat 输出如下
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
则 5144 就为进程号 pid = 5144
kill -9 5144 就可以彻底杀死tomcat
#直接查看指定端口的进程pid
netstat -anp|grep 9217
#结果为 tcp 0 0 :::9217 :::* LISTEN 26127/java
#则26127为9217这个端口的tomcat进程的pid,然后就可以kill这个进程
kill -9 26127
#然后再启动tomcat即可
5、查看日志是很好的办法,查看最后200行:
tail -n 200 catalin.out
6、除了tomcat自带的日志,应用程序可能也会写日志,通过查看应用日志,可以了解到应用是否在工作,尝试在开发过程中将一些重要的异常信息保存到服务器日志中,以便调试。
tail -n 200 /var/log/webapps/**.log