1. 개요

Spring Boot 웹 애플리케이션에는 기본적으로 사전 구성된 임베디드 웹 서버가 포함됩니다. 그러나 일부 상황에서는 사용자 지정 요구 사항을 충족 하도록 기본 구성수정 하고 싶습니다 .

이 예제에서는 application.properties 파일을 통해 Tomcat 임베디드 서버를 구성하는 몇 가지 일반적인 사용 사례를 살펴 보겠습니다 .

2. 일반적인 임베디드 Tomcat 구성

2.1. 서버 주소 및 포트

변경할 수 있는 가장 일반적인 구성 은 포트 번호입니다 .

server.port=80

server.port 매개 변수를 제공하지 않으면 기본적 으로 8080 으로 설정 됩니다.

어떤 경우 에는 서버가 바인딩해야하는 etwork 주소를 설정하고자 할 수 있습니다 . 즉, 서버가 수신IP 주소를 정의합니다 .

server.address=my_custom_ip

기본적으로 값은 0.0.0.0  으로 설정되어 모든 IPv4 주소를 통한 연결을 허용합니다. 다른 값 (예 : localhost –  127.0.0.1) 을 설정하면 서버가 더 선택적으로 선택됩니다.

2.2. 오류 처리

기본적으로 Spring Boot는 표준 오류 웹 페이지를 제공합니다 . 이 페이지를 Whitelabel 이라고합니다 . 기본적으로 활성화되어 있지만 오류 정보를 표시하지 않으려면 비활성화 할 수 있습니다.

server.error.whitelabel.enabled=false

Whitelabel 의 기본 경로 / error 입니다. server.error.path 매개 변수 를 설정하여 사용자 정의 할 수 있습니다 .

server.error.path=/user-error

또한 표시되는 오류에 대한 정보를 결정하는 속성을 설정할 수도 있습니다. 예를 들어 오류 메시지와 스택 추적을 포함 할 수 있습니다.

server.error.include-exception=true
server.error.include-stacktrace=always

REST에 대한 예외 메시지 처리Whitelabel 오류 페이지 사용자 지정 사용방법(예제) 에서는 Spring Boot의 오류 처리에 대해 자세히 설명합니다.

2.3. 서버 연결

리소스가 적은 컨테이너에서 실행할 때 CPU 및 메모리로드줄이는 것이 좋습니다. 이를 수행하는 한 가지 방법은 애플리케이션에서 처리 할 수있는 동시 요청 수를 제한하는 것입니다. 반대로 더 나은 성능을 얻기 위해 더 많은 사용 가능한 리소스를 사용하도록이 값을 늘릴 수 있습니다.

Spring Boot에서는 Tomcat 작업자 스레드의 최대 양을 정의 할 수 있습니다.

server.tomcat.threads.max=200

웹 서버를 구성 할 때 서버 연결 시간 제한설정하는 것도 유용 할 수 있습니다 . 이것은 연결이 종료되기 전에 연결 후 클라이언트가 요청을 할 때까지 서버가 대기하는 최대 시간을 나타냅니다.

server.connection-timeout=5s

요청 헤더의 최대 크기를 정의 할 수도 있습니다.

server.max-http-header-size=8KB

요청 본문의 최대 크기 :

server.tomcat.max-swallow-size=2MB

또는 전체 게시물 요청의 최대 크기 :

server.tomcat.max-http-post-size=2MB

2.4. SSL

Spring Boot 애플리케이션에서 SSL 지원을 활성화하려면 server.ssl.enabled 속성을 true 로 설정하고 SSL 프로토콜을 정의해야합니다.

server.ssl.enabled=true
server.ssl.protocol=TLS

또한 인증서를 보관하는 키 저장소의 암호, 유형 및 경로를 구성해야합니다.

server.ssl.key-store-password=my_password
server.ssl.key-store-type=keystore_type
server.ssl.key-store=keystore-path

또한 키 저장소에서 키를 식별하는 별칭도 정의해야합니다.

server.ssl.key-alias=tomcat

SSL 구성에 대한 자세한 내용은 Spring Boot 문서 에서 자체 서명 된 인증서를 사용하는 HTTPS를 참조하세요.

2.5. Tomcat 서버 액세스 로그

Tomcat 액세스 로그는 페이지 히트 수, 사용자 세션 활동 등을 측정 할 때 매우 유용합니다.

액세스 로그를 활성화하려면 다음을 설정 하면됩니다.

server.tomcat.accesslog.enabled=true

또한 로그 파일에 추가 된 디렉터리 이름, 접두사, 접미사 및 날짜 형식과 같은 다른 매개 변수도 구성해야합니다.

server.tomcat.accesslog.directory=logs
server.tomcat.accesslog.file-date-format=yyyy-MM-dd
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.suffix=.log

3. 결론

이 예제에서 우리는 몇 가지 일반적인 Tomcat 임베디드 서버 구성을 배웠습니다 . 더 많은 가능한 구성을 보려면 공식 Spring Boot 애플리케이션 속성 문서 페이지 를 방문 하세요.

항상 그렇듯이 이러한 예제의 소스 코드는 GitHub에서 사용할 수 있습니다 .