企業級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 系統環境說明
[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部署實踐及安全調優