- cat zt | grep -A 10 过滤出以后向前显示10行
cat zt | grep -B 10 向后
cat zt | grep -C 10 向前向后个显示10行 - printf “%x\n” 937
把PID937转换为16进制 - strace -p PID 追踪PID号的线程
- jstack:装Tomcat肯定得装JDK,就会有jstack命令。用来精确定位出错的代码段
- tomcat特点:最占内存的,内存够,运行速度就快
- Tocat是java的容器,运行的是java代码
- linux默认是有python的,而没有java
tomcat默认监听8080端口 - 在通过浏览器访问时需要指定端口进行访问
- java的压缩叫war包,打包命令叫jar。php的压缩包叫tar,打包命令叫tar。
- 网页目录(webapps)下的ROOT目录不能删除,其它都能删除,以及ROOT下的所有文件及目录都能删除
- 如果访问网页文件时不想看见子目录,那么就把这个网页文件放到webapps下的ROOT目录中。把网页文件放到ROOT目录中,就相当于没有任何路径
- tomcat和PHP有个区别
当tomcat的网页目录有更新,必须重启服务器,tomcat有很大的缓存。
而PHP则不用重启服务器
一.安装
tomcat需要安装java的环境,也就是需要安装java
1.1准备
(1)JDK下载(java环境):http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat下载:http://tomcat.apache.org/
(2)二进制包
1.2安装JAVA
1.2.1解压(二进制包直接解压不用编译),并作软连接
1.2.2添加环境变量
sed -i.ori '$a export JAVA_HOME=/usr/local/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
至此java安装完成
1.3安装tomcat
1.3.1解压,作软连接
1.3.2修改环境变量
echo 'export TOMCAT_HOME=/usr/local/tocat' >> /etc/profile
source /etc/profile
1.3.3用yum安装命令
除了ROOT目录之外的都可以删除,ROOT里的东西也可删除。ROOT里的东西是Tomcat的web管理端的文件,它的管理端是有漏洞的,黑客容易对其进行入侵,在工作中一般不用
1.3.4启动tomcat
/usr/local/tomcat/bin/startup.sh
关闭防火墙service iptables stop
关闭安全机制setenforce 0
自此Tomcat启动成功
1.4通过浏览器访问
1.5查看配置文件
1.5.1tomcat有个默认的管理功能(工作中虽然不用,但要尝试配置一次)
vim tomcat-users.xml
之后保存退出
重启tomcat /usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
1.5.2在浏览器登陆
这就是tomcat管理端。当然在工作中不经常用
二
2.1.1tomcat主配置文件server.xml
2.1.2端口
2.1.3 8005端口演示
可以远程操作tomcat服务。所以得修改它的端口
修改
8005端口
8080监听端口
8009端口
重新启动服务,8009端口会消失
引擎及IP访问时的默认网站
conf/server.xml
三,web站点部署
3.1.1修改配置文件,并重启服务
重启服务
3.1.2
3.1.3
会发现它自动出现目录(将war包自动进行解压缩),如果没有,那么就重新启动tomcat服务
3.1.4在浏览器进行访问
至此java的web服务器就部署好了
但是访问的时候是访问的子目录
方法(1):
四.tomcat多实例部署
4.1.1
4.1.2 修改配置文件
每个实例的端口都不能一致
修改另一个实例的配置文件。
除了端口不能一致,其它的都一样
为什么设置两个多实例的网页目录一致?
因为在工作当中web服务器看的是同一个网页代码,只不过是分成了多个web服务器。这里设置为同一个网页目录相当于起到了多实例负载均衡的效果
之后重新启动两个多实例tomcat服务
启动多实例tomcat服务
启动tomcat服务
通过浏览器访问
至此多实例完成
五.tomcat集群
相当于tomcat前方加了nginx作反向代理
Nginx配置文件中注意的
六.tomcat安全优化和性能优化
6.1 安全优化(必做)
最重要的为一下4项
(1)降权启动(用普通用户启动tomcat)
(2)telent管理端口保护(8005端口。要改成别的)
(3)ajp连接端口保护(8009端口。注释掉或者删除掉)
(4)禁用管理端(web界面,不用它的web管理界面。清空ROOT下的所有东西,webapps中要保留ROOT目录,其它的留不留无所谓)
-
降权启动
-
管理端口保护
6.2性能优化(重要的几个)
6.2.1屏蔽DNS的查询(DNS反向解析会影响效率)
6.2.2 JVM调优(最重要)
主要是对tomcat的堆栈内存作优化
企业案例Linuxjava/http进程高的解决方案
步骤
(1)先用top命令过滤出哪个进程导致的问题(找出占用CPU最高的进程号)
(2)查看这个进程所有的系统调用(再找出是哪个PID号的线程导致的)
streace -p PID
如果是937线程有问题,那么就用到 printf “%x\n” 937
是把937转换成16进制(在内存中的都是16进制)
(3)之后再用jstack
下来把这些内容打印给开发,他就知道是哪的问题