企业级Tomcat部署实践及安全调优

Posted wasir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业级Tomcat部署实践及安全调优相关的知识,希望对你有一定的参考价值。

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理html页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。

Tomcat官网: http://tomcat.apache.org

1.1.1 Tomcat好帮手---JDK  

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK包含了一批用于Java开发的组件,其中包括:

javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
java:运行工具,运行.class的字节码
jar:打包工具,将相关的类文件打包成一个文件
javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
jdb debugger:调试工具
jps:显示当前java程序运行的进程状态
javap:反编译程序
appletviewer:运行和调试applet程序的工具,不需要使用浏览器
javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
javaws:运行JNLP程序
extcheck:一个检测jar包冲突的工具
apt:注释处理工具 
jhat:java堆分析工具
jstack:栈跟踪程序
jstat:JVM检测统计工具
jstatd:jstat守护进程
jinfo:获取正在运行或崩溃的java程序配置信息
jmap:获取java进程内存映射信息
idlj:IDL-to-Java编译器。将IDL语言转化为java文件 
policytool:一个GUI的策略文件创建和管理工具
jrunscript:命令行脚本运行

JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。

JDK中还包括各种样例程序,用以展示Java API中的各部分。

JDK下载面页:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

1.2 安装Tomcat & JDK

安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

1.2.1 系统环境说明

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[[email protected] ~]# uname -a 
Linux web03 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] ~]# getenforce 
Disabled
[[email protected] ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

1.2.2  安装JDK

命令集:

tar xf jdk-8u60-linux-x64.tar.gz -C /application/
ln -s /application/jdk1.8.0_60 /application/jdk
# 设置环境变量
sed -i.ori ‘$a export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar‘ /etc/profile
source /etc/profile

测试jdk是否安装成功↓

[[email protected] ~]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

1.2.3 安装Tomcat

命令集:

tar xf apache-tomcat-8.0.27.tar.gz -C /application/
ln -s /application/apache-tomcat-8.0.27 /application/tomcat
# 设置环境变量
echo ‘export TOMCAT_HOME=/application/tomcat‘>>/etc/profile
source /etc/profile
# 注意授权,统一权限
chown -R root.root /application/jdk/ /application/tomcat/

检查tomcat是否安装成功

[[email protected] ~]# /application/tomcat/bin/version.sh
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built:   Sep 28 2015 08:17:25 UTC
Server number:  8.0.27.0
OS Name:        Linux
OS Version:     3.10.0-693.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_60-b27
JVM Vendor:     Oracle Corporation

1.3 Tomcat目录介绍

1.3.1 tomcat主目录介绍

[[email protected] ~]# cd /application/tomcat/
[[email protected] tomcat]# tree -L 1
.
├── bin              #存放tomcat管理脚本
├── conf             # tomcat 配置文件存放目录
├── lib              # web应用调用的jar包存放路径
├── LICENSE
├── logs             # tomcat 日志存放目录,catalina.out 为主要输出日志
├── NOTICE
├── RELEASE-NOTES
├── RUNNING.txt
├── temp             # 存放临时文件
├── webapps         # web程序存放目录
└── work             # 存放编译产生的.java 与 .class文件

7 directories, 4 files

1.3.2 webapps目录介绍

[[email protected] tomcat]# cd webapps/
[[email protected] webapps]# tree -L 1
.
├── docs            # tomcat 帮助文档
├── examples       # web应用实例
├── host-manager  # 主机管理
├── manager         # 管理
└── ROOT             # 默认站点根目录

5 directories, 0 files

1.3.3 Tomcat配置文件目录介绍(conf)

[[email protected] conf]# tree -L 1
.
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml
├── logging.properties
├── logs
├── server.xml           # tomcat 主配置文件
├── server.xml.bak
├── server.xml.bak2
├── tomcat-users.xml    # tomcat 管理用户配置文件
├── tomcat-users.xsd
└── web.xml

2 directories, 10 files

1.4 Tomcat的管理

#  启动程序/application/tomcat/bin/startup.sh
#  关闭程序/application/tomcat/bin/shutdown.sh

启动停止

[[email protected] ~]# /application/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
[[email protected] ~]# /application/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat

以上是关于企业级Tomcat部署实践及安全调优的主要内容,如果未能解决你的问题,请参考以下文章

生产环境mysql安装规划及调优实践--mysql8.0.29为例

安装部署jasig cas server及相关实践

安装部署jasig cas server及相关实践

Tomcat必会的企业级配置调优

企业级Tomcat部署配置

Apache网页与安全优化——网页压缩及缓存(理论实践相结合!)