본문으로 건너뛰기

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 커넥터 추가