标签:tomcat
资源天天长,程序写的不好,用完的内存没有被释放,导致占用资源越来越多,办法:
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进行关闭。
<Server port="8005" shutdown="SHUTDOWN">
通过端口号,发送一个暗号关闭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里面往后抛一样。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置参数2:安全优化方法:默认8009端口,要注释掉
默认8009端口,这个端口是和apache的httpd服务相关的,httpd和tomcat结合使用的是AJP协议。
但是生产环境都是用nginx代替httd,所以要注释掉8009
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
补充:
1,配置默认域名方法是在这个标签下面配置的。但是tomcat一般不用静态,所以不配置。
<Engine name="Catalina" defaultHost="localhost">
2,指定配置虚拟主机:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
unpackWARs="true" #默认是自动解压WAR包,不想自动加压可以修改为false
autoDeploy="true" #默认自动加载自动部署,因为WAR包解压出来了,但是还是无法访问,需要部署Deploy才可以访问,类似加载nginx reload功能。
详细配置参数优化看:3.3.3 配置文件注释
标签:tomcat
原文地址:http://blog.51cto.com/sandshell/2109363