톰캣 보안 및 성능 튜닝

톰캣 보안

보안 구성

  • webapps 디렉토리, 비활성화 바람둥이 관리 인터페이스에있는 모든 파일을 삭제;
  • 코멘트 또는 모든 사용자 권한 바람둥이-users.xml에서 문서에서 삭제;
  • 변경 또는 비활성화 닫기 명령 바람둥이
    • server.xml의 예에 정의 바람둥이 단지 가까운 톰캣 관리 포트 (기본 8005) 할 수있다. 포트가 텔넷을 통해 연결될 수있다 후 셧다운 입력 (기본값 클로즈 커맨드) (예 케이스가 닫혀 있지만, 참고를하지만 프로세스는 여전히 존재) 톰캣 인스턴스를 닫습니다.
    • 기본 톰캣 포트를 닫고 있기 때문에 지침은 매우 간단합니다. 기본 포트는 8005, 지침 SHUTDOWN입니다.
    方案一:更改端口号和指令:
    <Server port="8456" shutdown="itcast_shut">
    
    方案二:	禁用8005端口:
    <Server port="‐1" shutdown="SHUTDOWN">
    
  • 사용자 지정 오류 페이지
    • 웹 어플리케이션 / ROOT 디렉토리으로 404.html에서 사용자 지정 오류 페이지, 500.html;
    • (404), (500) 이러한 예외는 사용자가 리소스에 액세스 할 때, 우리는 비정상적인 스택 정보를 보지 않고, 우리의 사용자 지정 오류 페이지를 참조하고 사용자 경험을 향상시킬뿐만 아니라 서비스의 보안을 보호하기 위해 할 수 발생합니다.
    • 그런 다음 구성 바람둥이 / conf의 / web.xml을, 구성의 오류 페이지 :
    <error‐page>
        <error‐code>404</error‐code>
        <location>/404.html</location>
    </error‐page>
    <error‐page>
        <error‐code>500</error‐code>
        <location>/500.html</location>
    </error‐page>
    

응용 프로그램 보안

  • 보안 액세스 제어 응용 시스템에 대한 자신의 보안 관리 모듈 (권한 모듈) 실현하려면
  • 그것은 두 부분으로 구성 인증 (로그인 / 싱글 사인온) 및 권한 부여 (기능 인증, 데이터 인증)을 두 부분으로
  • SpringSecurity, 아파치 시로 등 : 비즈니스 시스템, 모듈 및 다른 권한을 자신의 비즈니스 시스템에 적용 할 경우, 직접 보안 프레임 워크의 일부 기능을 개선 많은 응용 프로그램이 있습니다, 같은 웹 응용 프로그램에 통합 할 수 있습니다.

운송 보안

톰캣 지원 HTTPS

  • 개인 키는 라이브러리 파일을 생성한다.

    keytool ‐genkey ‐alias tomcat ‐keyalg RSA ‐keystore tomcatkey.keystore
    

    그림 삽입 설명 여기
    당신이 등 키 저장소 암호, 비밀 키 암호에 해당하는 정보를 입력 한 후, 현재 폴더에 비밀 키 데이터베이스 파일이있을 것이다 : tomcatkey.keystore

  • 키는 바람둥이 / conf 디렉토리에 복사 라이브러리 파일을 tomcatkey.keystore.

  • 구성 바람둥이 / conf의 / server.xml에

    <Connector port="8443"
    	protocol="org.apache.coyote.http11.Http11NioProtocol"
        maxThreads="150" schema="https" secure="true" SSLEnabled="true">
        <SSLHostConfig certificateVerification="false">
            <Certificate
    		certificateKeystoreFile="D:/DevelopProgramFile/apache‐tomcat‐8.5.42‐windows‐x64/apache‐tomcat‐8.5.42/conf/tomcatkey.keystore"
    		certificateKeystorePassword="yzx"  type="RSA" />
        </SSLHostConfig>
    </Connector>
    
  • 액세스 Tomcat은, https 프로토콜을 사용합니다.
    그림 삽입 설명 여기

톰캣 성능 튜닝

JVM 조정 매개 변수

  • 톰캣은 자바 응용 프로그램, JVM 구성이 밀접하게 자신의 실행 성능과 관련이있을 것입니다, JVM은 운영 효율성 때문에, 메모리 할당 및 GC 정책에 초점의 조정을 최적화 및 처리량 메모리는 직접 JVM 가비지 수집 메커니즘의 뜻 서비스에 영향을 미칠 것 다양한 각도로, 실행의 결과 것은 중단.
  • 응용 프로그램의 특성에 따라 크게 실행 성능을 향상, 쓰레기 재활용의 수를 줄일 가비지 컬렉션의 효율성을 향상시킬 수 있습니다, 다른 가비지 수집 전략을 선택 JVM 가비지 콜렉션 정책을 조정합니다.

JVM 메모리 매개 변수

  • -섬기는 사람
    • 서버 시작은 서버 모드로 실행
    • 서버 모드 설정하는 것이 좋습니다
  • -Xms
    • 최소 힙 메모리
    • 제안 및 -Xmx는 동일하게 설정
  • -Xmx
    • 최대 힙 메모리
    • 권장 설정은 사용 가능한 메모리의 80 %
  • -XX : MetaspaceSize
    • 유안 공간의 초기 값
  • -XX : MaxMetaspaceSize
    • 기본 최대 메모리 무한 차원 공간
  • -XX : MaxNewSize
    • 신생대 기본 최대 메모리 16M
  • -XX : NewRatio
    • 예전과 젊은 세대의 크기 비율, 값이 정수, 기본값은 2입니다
    • 아니 개정 제안
  • -XX : SurvivorRatio
    • 에덴 영역 및 영역 생존자 정수 값의 크기의 비, 디폴트는 8
    • 아니 개정 제안

기본 가비지 컬렉터 톰캣
그림 삽입 설명 여기
JVM 튜닝

vi bin/catalina.sh

JAVA_OPTS="-server -Xms2g -Xmx2g -XX:MetaSpaceSize=256m -XX:MaxMetaSpaceSize=528m -XX:SurvivorRatio=8 -XX:USEConcMarkSweepGC -XX:+PrintGCDetails“

그림 삽입 설명 여기

튜닝 Tomcat 구성

구성 조정 maxThreads 커넥터의 conf / server.xml에의 : 풀에서 스레드의 최대 수입니다.

  • 의 MaxConnections : 연결의 최대 수는, CPU 집약적 인 2000에 대해 너무 높은 CPU를 많이 사용하는 작업은하지 않는 것이 좋습니다 제안을하지 않는 것이 좋습니다
  • acceptCount : 중복 배치 큐를 기다리는 요청의 최대 수 (접속 번호 =의 MaxConnections + acceptCount, 거부됩니다보다 더)
  • maxThreads : 스레드의 최대 수, 하드웨어의 결정에 따라
<Connector port="8080"  
          protocol="HTTP/1.1"
          redirectPort="8443" 
          connectionTimeout="20000"
          URIEncoding="UTF‐8"
          maxConnections="1000"
          acceptCount="200"
          maxThreads="500"  />
게시 된 109 개 원래 기사 · 원 찬양 47 ·은 30000 +를 볼

추천

출처blog.csdn.net/weixin_43934607/article/details/104386406