<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Tomcat調(diào)優(yōu)整理

          共 7780字,需瀏覽 16分鐘

           ·

          2021-05-14 13:52


          目錄

          • 1、隱藏版本號

          • 2、禁用不安全的方法

          • 3、錯誤頁面跳轉(zhuǎn)

          • 4、使tomcat支持軟鏈接

          • 5、tomcat增加http安全響應頭

          • 6、禁用管理端,強制或使用nginx配置規(guī)則

          • 7、Server header重寫

          • 8、訪問日志規(guī)范

          • 9、tomcat設置字符集UTF-8

          • 10、修復某些項目Java中文字體不顯示(中文亂碼問題)

          • 11、tomcat遵循JVM的delegate機制

          • 12、tomcat8靜態(tài)資源緩存配置

          • 13、未完待續(xù)


          本文只記錄工作中遇到的Tomcat配置、性能、安全等方面的調(diào)優(yōu)處理,所以不會有長篇大論,畢竟如今已經(jīng)是java -jar的時代了~ ~ ~

          1、隱藏版本號

          進入tomcatlib目錄找到catalina.jar文件

          unzip catalina.jar

          之后會多出兩個文件夾 進入org/apache/catalina/util編輯配置文件ServerInfo.properties修改為

          server.info=Apache Tomcat
          server.number=0.0.0.0
          server.built=Nov 7 2016 20:05:27 UTC

          將修改后的信息壓縮回jar包

          cd  /tomcat/lib
          jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

          2、禁用不安全的方法

          tomcat限制不安全http方法,如putdelete等等,設置方法在conf/web.xml里添加限制如下格式:

          <security-constraint> 
                  <web-resource-collection> 
                      <url-pattern>/*</url-pattern> 
                      <http-method>PUT</http-method> 
                      <http-method>DELETE</http-method> 
                      <http-method>HEAD</http-method> 
                      <http-method>OPTIONS</http-method>  
                      <http-method>TRACE</http-method> 
                  </web-resource-collection> 
                  <auth-constraint> 
                  </auth-constraint> 
          </security-constraint>

          3、錯誤頁面跳轉(zhuǎn)

          tomcat404、502、403等等錯誤頁面的跳轉(zhuǎn)設置為指定跳轉(zhuǎn)頁面,設置方法在conf/web.xml里添加跳轉(zhuǎn)如下格式:

              <error-page> 
                  <exception-type>java.lang.Exception</exception-type> 
                  <location>/404.html</location> 
              </error-page> 
              <error-page> 
                  <error-code>404</error-code> 
                  <location>/404.html</location> 
              </error-page> 
              <error-page> 
                  <error-code>400</error-code> 
                  <location>/404.html</location> 
              </error-page> 
              <error-page> 
                  <error-code>500</error-code> 
                  <location>/404.html</location> 
              </error-page> 

          4、使tomcat支持軟鏈接

          修改conf/context.xml文件:

          tomcat7配置方法:

          <!-- The contents of this file will be loaded for each web application -->
          <Context allowLinking="true">

          tomcat8配置方法:

          <Context>
              <Resources allowLinking="true" />
          </Context>

          5、tomcat增加http安全響應頭

          修改web.xml文件:

          配置方法:

              <filter>
                  <filter-name>httpHeaderSecurity</filter-name>
                  <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
                  <async-supported>true</async-supported>
                  <init-param>
                    <param-name>antiClickJackingEnabled</param-name>
                    <param-value>true</param-value>
                  </init-param>
                  <init-param>
                    <param-name>antiClickJackingOption</param-name>
                    <param-value>SAMEORIGIN</param-value>
                  </init-param>
                  <init-param>
                    <param-name>blockContentTypeSniffingEnabled</param-name>
                    <param-value>false</param-value>
                  </init-param>
              </filter>

              <filter-mapping>
                  <filter-name>httpHeaderSecurity</filter-name>
                  <url-pattern>/*</url-pattern>
                  <dispatcher>REQUEST</dispatcher>
              </filter-mapping>

          6、禁用管理端,強制或使用nginx配置規(guī)則

          • 刪除默認的{Tomcat安裝目錄}/conf/tomcat-users.xml文件(強制)
          • 刪除{Tomcat安裝目錄}/webapps下默認的所有目錄和文件(強制)

          7、Server header重寫

          tomcat HTTP端口直接提供web服務時此配置生效,加入此配置,將會替換http響應Server header部分的默認配置,默認是Apache-Coyote/1.1

          修改conf/server.xml

              <Connector port="8080" protocol="HTTP/1.1"
                         connectionTimeout="20000"
                         redirectPort="8443" 
                         server="webserver" />

          8、訪問日志規(guī)范

          開啟Tomcat默認訪問日志中的RefererUser-Agent記錄,一旦出現(xiàn)安全問題能夠更好的根據(jù)日志進行問題排查;X-Forwarded-For用于nginx作為反向代理服務器時,獲取客戶端真實的IP

          修改conf/server.xml

          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                 prefix="localhost_access_log" suffix=".txt"
                 pattern="%{X-Forwarded-For}i %l %u %t %r %s %b %{Referer}i %{User-Agent}i %D" resolveHosts="false" />

          9、tomcat設置字符集UTF-8

          修改conf/server.xml

          <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" URIEncoding="UTF-8" />

          10、修復某些項目Java中文字體不顯示(中文亂碼問題)

          這種情況有可能是項目代碼以及項目編譯時的編碼問題,也有可能是項目使用了特殊的中文字體,如果有特殊的中文字體,需要將字體文件放到jdk目錄下

          例如:在jdk中新建目錄

          /jdk1.8.0_191/jre/lib/fonts/fallback

          將系統(tǒng)中simsun.ttc字體文件拷貝到此目錄,并重命名為simsun.ttf

          11、tomcat遵循JVM的delegate機制

          修改conf/context.xml

          <Loader delegate="true"/>
          </Context>

          Loader對象可出現(xiàn)在Context中以控制Java類的加載。屬性:delegate、含義:True代表使用正式的Java代理模式(先詢問父類的加載器);false代表先在Web應用程序中尋找。默認值:FALSE

          True,表示tomcat將遵循JVMdelegate機制,即一個WebAppClassLoader在加載類文件時,會先遞交給SharedClassLoader加載,SharedClassLoader無法加載成功,會繼續(xù)向自己的父類委托,一直到BootstarpClassLoader,如果都沒有加載成功,則最后由WebAppClassLoader自己進行加載。

          False,表示將不遵循這個delegate機制,即WebAppClassLoader在加載類文件時,會優(yōu)先自己嘗試加載,如果加載失敗,才會沿著繼承鏈,依次委托父類加載。

          12、tomcat8靜態(tài)資源緩存配置

          tomcat8增加了靜態(tài)資源緩存的配置,.cacheMaxSize:靜態(tài)資源緩存最大值,以KB為單位,默認值為10240KB .cachingAllowed:是否允許靜態(tài)資源緩存,默認為true解決緩存溢出的辦法 對應兩個參數(shù),解決方法有兩種: 1:考慮增加cache的最大大小 2:關(guān)閉緩存 修改conf/context.xml

          <Resources cachingAllowed="true" cacheMaxSize="1048576" ></Resources>

          13、未完待續(xù)

          未完待續(xù)

          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  香蕉视频性 | 东方成人av | 欧美一区二区三区在线 | 亚洲无码性爱 | 伊人av影院 |