본문으로 건너뛰기

8.5 시스템 프로퍼티

웹 서브시스템에서는 수많은 시스템 프로퍼티를 사용할 수 있다. 이 값들을 변경하여 웹 서브시스템 자체의 동작을 상세하게 제어할 수 있다. 다음에서 대표적인 웹 서브시스템의 시스템 프로퍼티를 소개한다.

시스템 프로퍼티는 그 값을 변경하는 것으로 웹 서브시스템에 인스턴스에 큰 영향을 줄 수 있기 때문에 변경하는 경우는 그 의미나 동작을 자세히 이해하고 테스트한 다음 변경하여야 한다.

속성설명기본값
org.apache.tomcat.util.http.Parameters.MAX_COUNTPOST의 Body 중에서 해석할 수 있는 파라미터의 최댓값. 초과했을 경우 IllegalStateException가 발생한다.512
org.apache.tomcat.util.http.MimeHeaders.MAX_COUNTHTTP 요청으로 송신할 수가 있는 헤더의 최댓값. 초과했을 경우, IllegalStateException가 발생한다.128
org.apache.tomcat.util.net.MAX_THREADS요청 처리를 위해 사용하는 스레드 커넥터의 최댓값. 네이티브 커넥터를 사용할 때만 적용된다.내부 로직
org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZEHTTP 헤더의 최댓값. 초과했을 경우, ArrayOutOfBoundsExceptions가 발생한다.8192 Byte
org.apache.coyote.http11.DEFAULT_CONNECTION_TIMEOUT기본 HTTP 소켓 타임아웃60 초
org.apache.coyote.ajp.DEFAULT_CONNECTION_TIMEOUT기본 AJP 소켓 타임아웃.-1(무제한)
org.apache.tomcat.util.Constants.ENABLE_MODELERJMX 관리 사용여부false
org.apache.coyote.ajp.AprProcessor.TOMCATAUTHENTICATIONJBoss Web에서의 인증 정보를 우선 처리하는 경우 true로 설정한다. AJP를 통해 요청되는 경우 프론트 엔드 웹 서버의 인증 정보를 사용하는 경우에 false로 설정한다.true
org.apache.catalina.session.StandardManager.MAX_ACTIVE_SESSIONS애플리케이션의 HTTP 세션의 최대 개수를 지정한다.-1(무제한)
org.apache.catalina.connector.URI_ENCODINGURI에 대한 인코딩을 설정한다.ISO-8859-1
org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING쿼리 문자열에 본문의 인코딩을 따른다.false

표 4. 주요 시스템 프로퍼티

UTF-8 인코딩을 사용하는 애플리케이션을 배포하기 위해서는 URI에 대한 인코딩을 지정하여야 한다.

다음과 같이 CLI를 사용하여 URI 인코딩을 설정할 수 있다.

[standalone@localhost:9999 /] */system-property=org.apache.catalina.connector.URI_ENCODING:add(value="UTF-8")*

{

"outcome" => "success",
"response-headers" => {"process-state" => "reload-required"}

}
[standalone@ localhost:9999 /] /system-property=org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING:add(value="true")

{
"outcome" => "success",
"response-headers" => {"process-state" => "reload-required"}
}

시스템 프로퍼티를 설정하면 서버를 재 시작하여야 한다.

위 CLI를 실행하면 XML에는 다음과 같이 설정된다.

<system-properties>
<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>