Amazon ELB에서 활성 시간 초과를 유지하지 마십시오.

우분투 (JDK 1.6)에서 Tomcat 6.0.24를 HTTPS 커넥터에서 Comet 스타일 요청을 수행하는 앱과 함께 사용하고 있습니다 (APR을 사용하지 않고 Tomcat에 직접).

장거리 연결을 새로 고칠 필요가 없도록 keep-alive를 5 분으로 설정하고 싶습니다. 내 구성은 다음과 같습니다.

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="1000"  keepAliveTimeout="330000"
        scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

불행히도 서버는 65 초 후에 연결을 닫는 것 같습니다. 샘플 세션의 pcap은 다음과 같습니다.

T=0   Client sends SYN to server, handshake etc.
T=65  Server sends FIN to client
T=307 Client sends FIN to server

(클라이언트의 5 분 시간 초과는 HTTP lib가 서버 끝에서 소켓 닫기를 감지하지 못하기 때문에 발생하지만 어쨌든 서버는 초기에 연결을 종료해서는 안됩니다)

(편집 : 표준 HTTP 커넥터를 사용할 때 예상대로 작동합니다)



답변

Amazon의 ELB (Elastic Load Balancer)에는 문서화되지 않은 ( 포럼 제외 ) 60 초 시간 초과가있어 데이터가 전송되지 않으면 연결이 끊어집니다. 55 초마다 공백을 전송하여 해킹하면 구성 할 수있을 때까지 작동하는 것처럼 보입니다.


답변

연결을 닫는로드 밸런서 시간 초과가 문서화되었습니다 .

로드 밸런서의 유휴 시간 초과 설정을 구성하려면

  1. https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니 다 .
  2. 탐색 창에서 아래의 로드 밸런싱 을 클릭 로드 밸런서를 .
  3. 로드 밸런서를 선택하십시오.
  4. 하단 창에서 설명 탭을 선택 하십시오.
  5. 연결 설정을 찾은 다음 (편집) 을 클릭 합니다.
  6. 에서 구성 연결 설정 대화 상자에 값을 입력 유휴 시간 초과 . 유휴 시간 초과의 범위는 1-3,600 초입니다.
  7. 저장을 클릭 하십시오 .

답변

비활성 연결 시간 초과는 상태 확인 문제 해결 섹션에 나와 있습니다.
http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html


답변

ELB 유휴 시간 초과 범위가 업데이트되며 1 초 (최소)에서 최대 4000 초 (최대)까지 가능하며 유휴 시간 초과의 기본값은 60 초입니다.

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html