1. 程式人生 > >企業級Tomcat部署實踐及安全調優

企業級Tomcat部署實踐及安全調優

變量 目錄介紹 idl base uil 新版 script rac inf

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 系統環境說明

[root@web03 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@web03 ~]# 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
[root@web03 ~]# getenforce 
Disabled
[root@web03 ~]# 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\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar‘ /etc/profile
source /etc/profile

測試jdk是否安裝成功↓

[root@web03 ~]# 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是否安裝成功

[root@web03 ~]# /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主目錄介紹

[root@web03 ~]# cd /application/tomcat/
[root@web03 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目錄介紹

[root@web03 tomcat]# cd webapps/
[root@web03 webapps]# tree -L 1
.
├── docs            # tomcat 幫助文檔
├── examples       # web應用實例
├── host-manager  # 主機管理
├── manager         # 管理
└── ROOT             # 默認站點根目錄

5 directories, 0 files

1.3.3 Tomcat配置文件目錄介紹(conf)

[root@web03 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

啟動停止

[root@web03 ~]# /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
[root@web03 ~]# /application/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat

企業級Tomcat部署實踐及安全調優