资源天天长,程序写的不好,用完的内存没有被释放,导致占用资源越来越多,

办法:

1,修改代码

2,重启,或者定时任务重启tomcat

3,如果够有钱,给足够的内存。

tomcat一般跑多实例,一般并发不大,所以启动多个实例。企业里面nginx+tomcat架构

静态web:nginx

动态web:tomcat


tomcat企业中的安全优化案例:

企业环境tomcat用法:webapps目录下默认的程序都删除,ROOT目录里面内容都清空,即webapps目录下只保留一个空的ROOT目录,企业war包解压到此ROOT目录即可。

[root@backup webapps]# cd /application/tomcat/webapps/

[root@backup webapps]# ls

docs  examples  host-manager  manager  ROOT

[root@backup webapps]# mv docs  examples  host-manager  manager /tmp

[root@backup webapps]# mv ROOT/* /tmp/



XML配置文件安全优化:

上面这对符号代表注释,在xml配置文件中#符号不是代表注释,这个要区分开来。

配置参数1:安全优化方法: 默认8005端口和暗号都要修改。

默认8005端口不安全,因为这个通过这个8005可以telnet 连接本机127.0.0.1 8005然后对tomcat进行关闭。

通过端口号,发送一个暗号关闭tomcat,这里需要修改端口号8005和暗号SHUTDOWN。

举例如下:

[root@backup ~]# ss -lntup|grep java

tcp    LISTEN     0      1       ::ffff:127.0.0.1:8005                 :::*      users:(("java",1561,67))

tcp    LISTEN     0      100                   :::8009                 :::*      users:(("java",1561,51))

tcp    LISTEN     0      100                   :::8080                 :::*      users:(("java",1561,46))

[root@backup ~]# telnet 127.0.0.1 8005

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

SHUTDOWN

Connection closed by foreign host.

[root@backup ~]# ss -lntup|grep java  

[root@backup ~]# 


配置参数2:安全优化方法:默认8080端口,可以修改自定义端口。8443端口不用管。

默认8080端口,可以修改自定义端口。重定向端口默认8443,意思是可以把请求转发给8443端口,这个8443端口不是tomcat

本身的端口,是另外的程序的端口。类似nginx里面往后抛一样。

   

               connectionTimeout="20000"

               redirectPort="8443" />



配置参数2:安全优化方法:默认8009端口,要注释掉

默认8009端口,这个端口是和apache的httpd服务相关的,httpd和tomcat结合使用的是AJP协议。

但是生产环境都是用nginx代替httd,所以要注释掉8009



补充:

1,配置默认域名方法是在这个标签下面配置的。但是tomcat一般不用静态,所以不配置。

2,指定配置虚拟主机:

            unpackWARs="true" autoDeploy="true">


unpackWARs="true"  #默认是自动解压WAR包,不想自动加压可以修改为false

autoDeploy="true" #默认自动加载自动部署,因为WAR包解压出来了,但是还是无法访问,需要部署Deploy才可以访问,类似加载nginx reload功能。


详细配置参数优化看:3.3.3 配置文件注释