Tomcat做WEB服务器维护时的几点经验发布时间:2018/8/15 11:13:00 阅读次数:

  

  随着工作中不断的使用Tomcat,以及在以前对Tomcat不熟悉时维护Tomcat服务其中所踩到的坑,想想就在这里总结一下日常管理Tomcat服务器的几点建议,至于Tomcat的安装记得以前有写过,需要可以参看:http://www.netshield.cn/support/3402/,当然这个也是WIN环境下的测试安装的说明,实际生产环境可以根据以下内容结合实际修改,在这里建议在使用Tomcat时去官网下载需要使用相应大版本中的最新小版本二进制包。

     1、在实际生产环境中一般一台服务器上往往会不止一个Tomcat程序,所以在有一台服务器上有多个Tomcat时就不要定义Tomcat的二进制文件的PATH(/etc/profile.d/tomcat.sh),记得以前写的是只有一个Tomcat测试就顺手定义了一下。

    2、在新下载下来的Tomcat中,需要删除那些没有用的说明文件以及在webapps目录下的一切Tomcat默认页面、Tomcat说明文档、示例、默认后台等等,因为在实际生产环境中有这些页面会对Tomcat的版本等相关信息泄露,所以在解压开使用时需要删除webapps目录下一切文件,webapps目录用于存放项目包。

    3、在一台服务器上有多个Tomcat时需要注意的是对Tomcat的文件夹规范的重命名,根据实际的使用情况把多个Tomcat统一归档文件夹管理,在解压开未重命名情况下都是以Tomcat的包都是以“apache-tomcat-版本号”的命名,这个绝对需要改的,还有在有在多个Tomcat之间需要注意所监听的端口,莫要让多个Tomcat之间端口冲突,这样新的冲突Tomcat是无法启动的,修改的配置文件是conf目录下的server.xml文件,除非是相应的Tomcat连接数等相关参数调优时,不然不建议项目中的一些配置直接在server.xml文件中修改,其中需要修改的有2个端口,分别是:shutdown和使用的监听端口,可以使用ss工具检查,并且在服务器的防火墙上开启相应的端口:


…略…
<Server port="8005" shutdown="SHUTDOWN">
…略…
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
…略…


    4、在平时启动Tomcat的时候建议使用bin目录下的startup.sh或startup.bat启动Tomcat,在未对Tomcat的配置参数做出调优调整时,Tomcat的建议的缺省使用JVM的内存是新生代和老生代都是2048Mb,这一点需要注意免得一台服务器上部署太多Tomcat,资源不足,当然如果有调优过,那么建议把调优的参数统一写在bin目录下的startup.sh/startup.bat或者是catalina.sh/catalina.bat文件下,总之对Tomcat中使用JVM的内存相关参数需要统一写在一个文件下,以免后期调整Tomcat的内存参数时找不到。

    5、在开源Unix系统下默认从源上Java JDK包都是openjdk,实际生产环境中可能并不是使用openjdk,所以在JDK安装时请根据实际情况选择,如果是使用非openjdk的版本时请使用yum或者apt卸载掉openjdk后去Oracle官网下载相应的JDK版本,这个也需要注意使用的版本,请结合实际需要使用的JDK去下载,如果是一台服务器上都是用同一版本,如Linux下建议下载rpm包后用yum本地安装,顺便有缺少的依赖包都解决了,还可以检查。

    6、在Tomcat使用自动部署时,尤其是在做旧项目的版本更新时,尤为注意的是在Tomcat的进程没有关闭之前不能移动或者删除项目文件夹webapps中的war包,如果做了项目的自动部署的功能,那么移动或者删除webapps中的的war包,项目文件就会全没了,所以一定需要在Tomcat进程关闭后才能操作,特别是在实际生产环境中可能在一个Tomcat下有多个项目包时,所以在使用war包做项目包的全量更新时,需要注意是否有关闭Tomcat的进程。

    7、在使用Tomcat时建议不要使用root用户去启动Tomcat程序,建议把Tomcat使用指定用户在指定用户下启动,当然文件的属组也要对,这样是提高Tomcat服务器的安全性,且开启系统中打开文件的最大句柄数(进程数)和最大线程数,如Centos 6系统下的:

[root@localhost ~]# vim /etc/security/limits.conf
…略…
* soft nofile 65535
* hard nofile 65535
[root@localhost ~]# echo "ulimit -SHn 65535" >> /etc/rc.local
[root@localhost ~]# vim /etc/security/limits.d/90-nproc.conf#根据实际修改,原先1024个线程在实际生产环境中肯定是不够的
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     65535
root       soft    nproc     unlimited


    8、对Tomcat的相关日志做相应的轮替切割,尤其是logs目录下的catalina.out,可以使用系统的logrotate工具,至于logrotate工具以前有做过相应的参数说明,在这里就不做赘述了如:

[root@localhost ~]# vim /etc/logrotate.d/tomcat
/data/tomcat/web01/logs/catalina.out {
        copytruncate
        daily
        rotate 30
        dateext
        missingok
        nocompress
        create 644 tomcat tomcat
}
[root@localhost ~]# crontab -e
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf

友情链接: 野人野趣     027下载站     脚本之家     潜江人论坛     拨号VPS     科技港健身房     武汉云主机     idc公司大全     武汉服务器租用