[root@DaMoWang ~]# vim /usr/local/tomcat/conf/server.xml
禁用8005端口javascript
telnet localhost 8005 而後輸入 SHUTDOWN 就能夠關閉 Tomcat,爲了安全咱們要禁用該功能css
<Server port="8005" shutdown="SHUTDOWN"> # 修改成 <Server port="-1" shutdown="SHUTDOWN">
應用程序安全&關閉自動部署html
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> # 修改成 <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false" reloadable="false">
maxThreads 鏈接數限制修改配置java
<!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> --> # 修改成 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="30" maxIdleTime="60000" prestartminSpareThreads = "true" maxQueueSize = "100" />
參數解釋:web
maxThreads:最大併發數,默認設置 200,通常建議在 500 ~ 800,根據硬件設施和業務來判斷
minSpareThreads:Tomcat 初始化時建立的線程數,默認設置 25
maxIdleTime:若是當前線程大於初始化線程,那空閒線程存活的時間,單位毫秒,默認60000=60秒=1分鐘。
prestartminSpareThreads:在 Tomcat 初始化的時候就初始化 minSpareThreads 的參數值,若是不等於 true,minSpareThreads 的值就沒啥效果了
maxQueueSize:最大的等待隊列數,超過則拒絕請求apache
Connector 參數優化配置json
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> # 修改成 <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="60000" maxConnections="10000" redirectPort="8443" enableLookups="false" acceptCount="100" maxPostSize="10485760" maxHttpHeaderSize="8192" compression="on" disableUploadTimeout="true" compressionMinSize="2048" acceptorThreadCount="2" compressableMimeType="text/html,text/plain,text/css,application/javascript,application/json,application/x-font-ttf,application/x-font-otf,image/svg+xml,image/jpeg,image/png,image/gif,audio/mpeg,video/mp4" URIEncoding="utf-8" processorCache="20000" tcpNoDelay="true" connectionLinger="5" server="Server Version 11.0" />
參數解釋:vim
protocol:Tomcat 7 設置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
protocol:Tomcat 6 設置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
protocol:Tomcat 8 設置 APR 性能飛快:org.apache.coyote.http11.Http11AprProtocol 具體配置 : <CentOS 7 Tomcat 8.5 基於APR庫性能優化>緩存
connectionTimeout:Connector接受一個鏈接後等待的時間(milliseconds),默認值是60000。
maxConnections:這個值表示最多能夠有多少個socket鏈接到tomcat上
enableLookups:禁用DNS查詢
acceptCount:當tomcat起動的線程數達到最大時,接受排隊的請求個數,默認值爲100。
maxPostSize:設置由容器解析的URL參數的最大長度,-1(小於0)爲禁用這個屬性,默認爲2097152(2M) 請注意, FailedRequestFilter 過濾器能夠用來拒絕達到了極限值的請求。
maxHttpHeaderSize:http請求頭信息的最大程度,超過此長度的部分不予處理。通常8K。
compression:是否啓用GZIP壓縮 on爲啓用(文本數據壓縮) off爲不啓用, force 壓縮全部數據
disableUploadTimeout:這個標誌容許servlet容器使用一個不一樣的,一般長在數據上傳鏈接超時。 若是不指定,這個屬性被設置爲true,表示禁用該時間超時。
compressionMinSize:當超過最小數據大小才進行壓縮
acceptorThreadCount:用於接受鏈接的線程數量。增長這個值在多CPU的機器上,儘管你永遠不會真正須要超過2。 也有不少非維持鏈接,您可能但願增長這個值。默認值是1。
compressableMimeType:配置想壓縮的數據類型
URIEncoding:網站通常採用UTF-8做爲默認編碼。
processorCache:協議處理器緩存的處理器對象來提升性能。 該設置決定多少這些對象的緩存。-1意味着無限的,默認是200。 若是不使用Servlet 3.0異步處理,默認是使用同樣的maxThreads設置。 若是使用Servlet 3.0異步處理,默認是使用大maxThreads和預期的併發請求的最大數量(同步和異步)。
tcpNoDelay:若是設置爲true,TCP_NO_DELAY選項將被設置在服務器套接字,而在大多數狀況下提升性能。這是默認設置爲true。
connectionLinger:秒數在這個鏈接器將持續使用的套接字時關閉。默認值是 -1,禁用socket 延遲時間。
server:隱藏Tomcat版本信息,首先隱藏HTTP頭中的版本信息tomcat
隱藏或修改 Tomcat 版本號
[root@DaMoWang conf]# cd /usr/local/tomcat/lib/ [root@DaMoWang lib]# unzip catalina.jar [root@DaMoWang lib]# cd org/apache/catalina/util/ [root@DaMoWang util]# vim ServerInfo.properties server.info=Apache Tomcat/9.0.10 server.number=9.0.10.0 server.built=Jun 20 2018 17:32:21 UTC # 對以上內容修改或刪除版本號便可
刪除禁用默認管理頁面以及相關配置文件
[root@DaMoWang util]# rm -rf /usr/local/tomcat/conf/tomcat-users.xml [root@DaMoWang util]# rm -rf /usr/local/tomcat/webapps/*