一、Tomcat 安裝
- 官網:http://tomcat.apache.org/
- Tomcat8官網下載地址:http://tomcat.apache.org/download-80.cgi
- 爲了便於文件管理,個人習慣 在/opt目錄下創建 一個install目錄用於存放 軟件安裝包,在/usr 目錄下創建local文件夾用戶存放解壓文件
- 下載安裝包: wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz
- 解壓壓縮包: tar -zxvf apache-tomcat-8.0.32.tar.gz
- 移動解壓文件到 mv apache-tomcat-8.0.32/ /usr/local/
- 爲方便起見,可以使用 mv /usr/local/apache-tomcat-8.0.32/ /usr/local/tomcat8/ 修改目錄名稱
sudo
/etc/rc.d/init.d/iptables save
二、Tomcat 安全配置與優化
2.1優化server.xml
2.1.1 隱藏版本信息
- 隱藏HTTP 頭部的版本信息 。
編輯server.xml: vi /usr/local/tomcat8/conf/server.xml
<span style="font-family:Consolas, Liberation Mono, Menlo, Courier, monospace;"> </span><span style="font-family:Microsoft YaHei;"> <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" server="APP Srv1.0"/></span>
- 隱藏404頁面出現的版本號
[root@localhost ~]
# cat
/usr/local/tomcat8/lib/org/apache/catalina/util/ServerInfo.properties |grep -v '^$|#'
server.info=Apache Tomcat
/8
.0.23
server.number=8.0.23.0
server.built=Mar
18 2016 20:31:49 UTC
還有另外一種方法來實現隱藏或僞裝Tomcat的版本信息,其本質和上面一樣,操作如下:
[root@localhost ~]
# cd /usr/local/tomcat8/lib
[root@localhost lib]
# mkdir -p org/apache/catalina/util
[root@localhost lib]
# cd org/apache/catalina/util
[root@localhost util]
# vim ServerInfo.properties
server.info=nolinux
# 如果想修改成其它版本號,把這個地方的值改成其它值就行了
2.1.2禁用Tomcat管理界面
2.1.3 應用程序安全
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false"
reloadable="false">
2.1.4 更改關閉Tomcat的指令
2.1.5 連接池配置
2.1.5.1 打開被註釋的默認連接池配置
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="100"
prestartminSpareThreads="true" maxQueueSize="100"/>
- name: 線程名稱
- namePrefix: 線程前綴
- maxThreads : 最大併發連接數,不配置時默認200,一般建議設置500~ 800 ,要根據自己的硬件設施條件和實際業務需求而定。
- minSpareThreads:Tomcat啓動初始化的線程數,默認值25
- prestartminSpareThreads:在tomcat初始化的時候就初始化minSpareThreads的值, 不設置true時minSpareThreads
- maxQueueSize: 最大的等待隊列數,超過則拒絕請求
2.1.5.2 修改鏈接配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
executor="tomcatThreadPool"
enableLookups="false"
acceptCount="100"
maxPostSize="10485760"
compression="on"
disableUploadTimeout="true"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
acceptorThreadCount="2"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
URIEncoding="utf-8"/>
- port:連接端口。
- protocol:連接器使用的傳輸方式。 Tomcat 8 設置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
- protocol, Tomcat 6、7 設置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
- executor: 連接器使用的線程池名稱
- enableLookups:禁用DNS 查詢
- acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理,默認設置 100 。
- maxPostSize:限制 以FORM URL 參數方式的POST請求的內容大小,單位字節,默認是 2097152(2兆),10485760 爲 10M。如果要禁用限制,則可以設置爲 -1。
- acceptorThreadCount: 用於接收連接的線程的數量,默認值是1。一般這個指需要改動的時候是因爲該服務器是一個多核CPU,如果是多核 CPU 一般配置爲 2。
- compression:傳輸時是壓縮。
- compressionMinSize:壓縮的大小
- noCompressionUserAgents:不啓用壓縮的瀏覽器
2.1.6 管理AJP端口
<span style="font-family:Microsoft YaHei;"> <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />--></span>
2.2 JVM
2.3 應用程序部署
1
2
3
4
5
6
|
[root@localhost ~] # groupadd tomcat [root@localhost ~] # useradd -g tomcat tomcat [root@localhost ~] # passwd tomcat [root@localhost ~] # chown tomcat.tomcat -R /usr/local/tomcat [root@localhost ~] # su - tomcat /usr/local/tomcat/bin/startup.sh [root@localhost ~] # echo 'su - tomcat -c "tomcat /usr/local/tomcat/bin/startup.sh"' >> /etc/rc.local #開機啓動 |
參考資料:
https://github.com/judasn/Linux-Tutorial/blob/master/Tomcat-Install-And-Settings.md
http://nolinux.blog.51cto.com/4824967/1608940
centos7設置防火牆:http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port