두 손끝의 창조자

Tomcat HTTP Connector 본문

HTTP

Tomcat HTTP Connector

codinglog 2020. 8. 7. 08:59

HTTP 커넥터 요소는 HTTP / 1.1 프로토콜을 지원하는 커넥터 구성 요소를 나타냅니다. 이를 통해 Catalina는 서블릿 및 JSP 페이지를 실행하는 기능 외에도 독립형 웹 서버로 작동할 수 있습니다. 이 구성 요소의 특정 인스턴스는 서버의 특정 TCP 포트 번호에서 연결을 수신합니다. 하나 이상의 이러한 커넥터를 단일 서비스의 일부로 구성 할 수 있으며, 각각은 요청 처리를 수행하고 응답을 생성하기 위해 연관된 엔진으로 전달합니다. 

들어오는 각 요청에는 해당 요청 기간 동안 스레드가 필요합니다. 현재 사용 가능한 요청 처리 스레드에서 처리할 수 있는 것보다 더 많은 동시 요청이 수신되면 구성된 최대 값 (maxThreads 속성 값)까지 추가 스레드가 생성됩니다. 더 많은 동시 요청이 수신되면 커넥터가 만든 서버 소켓 내부에 구성된 최대 값 (acceptCount 속성 값)까지 쌓입니다. 추가 동시 요청은 처리에 리소스를 사용할 수있을 때까지 "connection refused"오류를 응답합니다.

주요 Attributes

port

이 커넥터가 서버 소켓을 만들고 들어오는 연결을 기다리는 TCP 포트 번호입니다. 운영 체제는 하나의 서버 응용 프로그램 만 특정 IP 주소에서 특정 포트 번호를 수신하도록 허용합니다. 특수 값 0 (영)이 사용되면 Tomcat은이 커넥터에 사용할 사용 가능한 포트를 임의로 선택합니다. 이는 일반적으로 임베디드 및 테스트 응용 프로그램에서만 유용합니다.

acceptCount

가능한 모든 요청 처리 스레드가 사용 중일 때 들어오는 연결 요청의 최대 큐 길이입니다. 대기열이 꽉 찼을 때 수신 된 모든 요청은 거부됩니다. 기본값은 100입니다.

acceptorThreadCount

연결을 수락하는 데 사용할 스레드 수입니다. 다중 CPU 시스템에서이 값을 늘리십시오. 실제로 2 개 이상은 필요하지 않을 것입니다. 또한 많은 non keep alive 연결이있는 경우이 값도 늘릴 수 있습니다. 기본값은 1입니다.

connectionTimeout

커넥터가 연결을 수락 요청 URI 행이 표시 때까지 기다리는 시간 (밀리 )입니다. -1 값을 사용하여 시간 제한 없음 (, 무한) 나타냅니다. 기본값은 60000 ( : 60 )이지만 Tomcat 함께 제공되는 표준 server.xml은이를 20000 ( : 20 )으로 설정합니다. disableUploadTimeout false 설정되어 있지 않으면이 제한 시간은 요청 본문 (있는 경우) 읽을 때도 사용됩니다.

maxConnections

주어진 시간에 서버가 수락하고 처리 할 최대 연결 수입니다. 이 숫자에 도달하면 서버는 추가 연결을 허용하지만 처리하지는 않습니다. 이 추가 연결은 처리중인 연결 수가 maxConnections 아래로 떨어질 때까지 차단되며, 이때 서버가 새 연결을 다시 수락하고 처리하기 시작합니다. 제한에 도달하면 운영 체제가 acceptCount 설정에 따라 연결을 계속 수락 할 수 있습니다. 기본값은 커넥터 유형에 따라 다릅니다. NIO 및 NIO2의 경우 기본값은 10000입니다. APR / native의 경우 기본값은 8192입니다.

NIO / NIO2의 경우에만 값을 -1로 설정하면 maxConnections 기능이 비활성화되고 연결이 계산되지 않습니다.

maxThreads

이 커넥터에서 작성할 최대 요청 처리 스레드 수. 따라서 처리 할 수있는 동시 요청의 최대 수를 결정합니다. 지정되지 않은 경우이 속성은 200으로 설정됩니다. 실행 프로그램이이 커넥터와 연관된 경우 커넥터가 내부 스레드 풀이 아닌 실행 프로그램을 사용하여 태스크를 실행하므로이 속성은 무시됩니다. 실행기가 구성되면이 속성에 대해 설정된 모든 값이 올바르게 기록되지만 사용되지 않음을 명확히하기 위해 (예 : JMX를 통해) -1로보고됩니다.

반응형
Comments