톰캣 보안
보안 구성
- 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" />