본문으로 건너뛰기

8.2 커넥터 설정

웹 서브시스템은 요청을 받아들이기 위해 커넥터라는 컴포넌트를 사용한다. 커넥터는 다음 그림처럼 3가지 종류가 있다.

그림 2. 웹 서브시스템에서 커넥터의 종류

커넥터는 웹 서브시스템의 <connector>에서 정의한다.

웹 관리 콘솔에서 커넥터 설정

웹 관리 콘솔에서 ‘Profiles’ -> ‘Web’ -> ‘Servlet/HTTP Configuration’ -> ‘Connectors’ 탭을 선택하여 커넥터의 추가, 편집 및 삭제가 가능하다.

그림 3. 커넥터 설정 화면

CLI에서 커넥터 설정 조회

CLI를 사용하여 HTTP 커넥터의 설정을 조회하는 방법은 다음과 같다. CLI에서 조회뿐만 아니라, 값의 추가, 수정, 삭제가 모두 가능하다. CLI의 사용법은 ‘16장. JBoss EAP 6 관리도구’에서 자세히 설명한다.

[standalone@localhost:9999 /] /subsystem=web/connector=http:read-resource
{
"outcome" => "success",
"result" => \{
"configuration" => undefined,
"enable-lookups" => false,
"enabled" => true,
"executor" => undefined,
"max-connections" => undefined,
"max-post-size" => 2097152,
"max-save-post-size" => 4096,
"name" => "http",
"protocol" => "HTTP/1.1",
"proxy-name" => undefined,
"proxy-port" => undefined,
"redirect-port" => 443,
"scheme" => "http",
"secure" => false,
"socket-binding" => "http",
"ssl" => undefined,
"virtual-server" => undefined
}
}

HTTP 커넥터 속성들

속성설명기본값
enable-lookups이 값을 false로 설정하면 성능을 높일 수 있다. request.getRemoteHost() 호출시 IP 주소 대신 호스트명을 돌려주기 위해 DNS 룩업을 하지 않는다. 일반적으로 변경할 필요가 없다.false
enabled커넥터 사용 여부를 설정하며, 이 값이 false이면 커넥터를 사용할 수 없다.true
executor내부 스레드 풀 대신에 외부 Executor thread 풀을 사용하려고 할 때 Executor thread 풀 이름을 지정한다.undefined
max-connections커넥터의 최대 커넥션 수로 동시 접속 수. 기본값으로 최대 스레드 수로 설정된다. 네이티브 커넥터를 설치한 경우에는 내부적으로 계산된 수치(Java VM 에서 사용 가능한 프로세서 수의 32배)로 설정된다.undefined
max-post-size한 번에 송신할 수 있는 POST 요청의 최대 사이즈 byte 단위로 지정한다. 이 값이 0이면 무제한이다.2097152 (2MB)
max-save-post-sizePOST 요청일 때 컨테이너에서 저장되거나 버퍼링될 파라미터의 최대 사이즈를 지정한다. -1를 설정하면 무제한. 0을 설정하면 저장하지 않는다.4096 (4KB)
name커넥터 이름-
protocol프로토콜 지정. HTTP/1. 1또는 AJP/1.3-
proxy-name커넥터가 Proxy 구성을 사용할 경우 request.getServerName()을 호출할 때 서버 이름을 지정하는 속성값. 주로 리버스 프록시를 사용하는 경우에 설정하지만, mod_jk 등 AJP 프로토콜을 사용하는 프록시의 경우는 자동 설정되기 때문에 설정할 필요는 없다undefined
proxy-port커넥터가 Proxy 구성을 사용할 경우 request.getServerPort()을 호출할 때 서버 포트를 지정할 수 있는 속성값. 주로 리버스 프록시를 사용하는 경우에 설정하지만, mod_jk 등 AJP 프로토콜을 사용하는 프록시의 경우에는 자동으로 설정되기 때문에 설정할 필요가 없다.undefined
redirect-portSSL 리다이렉트에 사용하는 포트번호를 지정. non-SSL 요청에서 <security-constraint> 이 설정된 경우에 여기에 지정한 포트번호로 리다이렉트 한다.8443
scheme리다이렉트 URL에 사용되는 request.getScheme()의 반환값에 설정되는 값. 주로 리버스 프록시를 사용하는 경우로 설정하지만, mod_jk 등 AJP 프로토콜을 사용하는 프록시의 경우 자동으로 설정되기 때문에 설정할 필요 없다. SSL 사용시 https를 지정한다.http
securerequest.isSecure()의 반환 값을 설정한다. 주로 리버스 프록시를 사용하는 경우에 설정하지만, mod_jk 등 AJP 프로토콜을 사용하는 프록시일 경우에는 자동으로 설정되기 때문에 설정할 필요 없다. true일 경우, 세션 Cookie에 Secure 속성이 부여된다.false
socket-binding사용할 소켓 바인딩 이름을 지정한다.http
sslSSL 커넥터를 사용하는 경우로 설정한다.undefined
virtual-server가상 서버를 사용하는 경우로 설정한다.undefined

표 1. HTTP 커넥터의 주요 속성

새로운 커넥터를 추가

새로운 커넥터를 추가하려면 웹 관리 콘솔이나 CLI를 사용하여 설정할 수 있다.

다음은 AJP 커넥터를 추가하는 방법이다. default 프로파일과 full 프로파일에는 AJP 커넥터가 설정되어 있지 않다. 클러스터링을 사용하지 않고 웹 서버를 이용한 로드 밸런싱 기능만 사용하려면 다음과 같이 AJP 커넥터를 추가한다.

‘Profile’ ‘Web’ ‘Servlet/HTTP’ ‘Connectors’ 탭 ‘Add’를 클릭한다.

다음 표의 설정 값을 입력한다.

프로퍼티설정 값
커넥터 이름ajp
소켓 바인딩ajp
프로토콜AJP/1.1
스키마http
Enabletrue

표 2. AJP 커넥터 설정 값

그림 4. 새로운 AJP 커넥터 추가