NSX Data Center for vSphere 6.1.5 이상에서 x-forwarded-for을 사용하도록 설정하는 경우 HTTP 연결 모드가 수동 닫기(option httpclose)에서 기본 HTTP 서버 닫기(option http-server-close) 모드로 변경됩니다. 서버 닫기 옵션은 서버에서 응답을 받은 후에 서버 쪽 연결은 닫히지만 클라이언트 쪽 연결은 열린 상태를 유지합니다. NSX Data Center for vSphere 6.1.5 이전 버전에서는 로드 밸런서가 연결을 미리 닫지 않았지만 양방향에서 Connection:close 헤더를 삽입하여 클라이언트 또는 서버에 연결을 닫도록 지시했습니다. NSX Data Center for vSphere 6.1.5 이상으로 업그레이드한 후에 로드 밸런서에서 HTTP/HTTPS 트랜잭션이 실패하면 스크립트 option httpclose를 사용하여 애플리케이션 규칙을 추가하고 더 이상 작동하지 않는 가상 서버에 연결합니다.

HTTP 서버 닫기(기본값) - 서버 쪽 연결은 응답 끝이 수신된 후에 닫히고 클라이언트 쪽 연결은 열린 상태를 유지합니다. HTTP 서버 닫기는 클라이언트 측에 지연 시간(느린 네트워크)을, 서버 측에 가장 빠른 세션 재사용을 제공하여 서버 리소스를 절약합니다. 또한 연결을 유지할 수 없는 서버가 클라이언트 측면에서 연결 유지하도록 합니다. 이 모드는 가장 일반적인 사용 사례에 적합합니다. 특히 느린 클라이언트 쪽 네트워크 및 빠른 서버 쪽 네트워크에 적합합니다.

HTTP 연결 유지 - 모든 요청 및 응답이 처리되고 연결은 열린 상태를 유지하지만 응답과 새 요청 간은 유휴 상태가 됩니다. 장점은 트랜잭션 간 지연 시간이 줄어들고 서버 측에 필요한 처리 능력이 줄어듭니다. 활성 세션 수를 수용하도록 메모리 요구 사항이 늘어나며, 각 요청 후에 더 이상 연결이 닫히지 않으므로 메모리 요구 사항이 더 높아집니다. 애플리케이션 규칙 timeout http-keep-alive [time]을 사용하여 클라이언트 쪽 유휴 시간 초과를 구성할 수 있습니다. 기본적으로 유휴 시간 초과는 1초입니다. 이 모드는 애플리케이션이 NTLM 인증을 요구할 때 필수입니다.

HTTP 터널 - 첫 번째 요청 및 응답만 처리되고 클라이언트와 서버 간에 터널이 설정되므로 HTTP 프로토콜의 추가 분석 없이도 소통할 수 있습니다. 터널이 설정된 후에 연결은 클라이언트 및 서버 양측에서 유지됩니다. 이 모드를 사용하도록 설정하려면 다음 옵션을 모두 설정하지 않아야 합니다. passive-close mode, server-close mode, force-close mode

HTTP 터널 모드는 다음 기능에 영향을 미치며 세션의 첫 번째 요청 및 응답에만 적용됩니다.
  • 로그가 생성되지 않음
  • HTTP 헤더 구문 분석
  • HTTP 헤더 조작
  • 쿠키 처리
  • 컨텐츠 전환
  • X-Forwarded-For 헤더 삽입

HTTP 수동 닫기 - 터널 모드와 동일하지만 클라이언트 및 서버 방향 둘 다로 Connection: close 헤더가 추가됩니다. 첫 번째 요청 및 응답이 교환된 후에 양쪽 끝이 닫힙니다. option httpclose가 설정되면 로드 밸런서는 HTTP 터널 모드에서 작동하고 각 방향으로 Connection: close 헤더가 있는지 확인합니다. 이 헤더가 없으면 Connection: close 헤더가 추가됩니다. 그러면 각 끝에서 각 전송 후에 TCP 연결이 능동적으로 닫히고 HTTP 닫기 모드로 전환됩니다. close 이외의 모든 연결 헤더는 제거됩니다. 로드 밸런서에 의해 삽입된 후 클라이언트의 다음 요청에 의해 다시 전달되는 쿠키 같은 두 번째 및 후속 요청을 제대로 처리할 수 없는 애플리케이션은 터널 모드 또는 수동 닫기 모드를 사용할 수 있습니다.

일부 HTTP 서버는 option httpclose로 설정된 Connection: close를 수신할 때 반드시 연결을 닫지는 않을 수 있습니다. 또한 클라이언트가 연결을 닫지 않으면 시간 초과가 만료될 때까지 연결은 열린 상태를 유지합니다. 이로 인해 서버에서 많은 수의 동시 연결이 발생하고 로그에는 높은 전역 세션 시간이 표시됩니다. 이러한 이유로 이전 HTTP 1.0 브라우저와 호환되지 않습니다. 이 경우 option forceclose를 사용합니다. 그러면 서버가 응답할 경우 요청 연결이 능동적으로 닫힙니다. 또한 옵션 forceclose는 클라이언트의 승인을 대기할 필요가 없으므로 서버 연결이 더 빠르게 해제됩니다.

HTTP 강제 닫기 - 응답이 끝난 후에 클라이언트 및 서버 연결 둘 다 로드 밸런서에 의해 능동적으로 닫힙니다. 일부 HTTP 서버는 option httpclose로 설정된 Connection: close를 수신할 때 반드시 연결을 닫지는 않을 수 있습니다. 또한 클라이언트가 연결을 닫지 않으면 시간 초과가 만료될 때까지 연결은 열린 상태를 유지합니다. 이로 인해 서버에서 많은 수의 동시 연결이 발생하고 로그에는 높은 전역 세션 시간이 표시됩니다. 이 경우 option forceclose는 서버가 응답을 끝내고 option httpclose를 사용하여 이전 버전의 일부 리소스를 해제할 때 나가는 서버 채널을 닫습니다.

버전 기본 연결 모드 다음 설정 시
X-Forwarded-For
연결 모드
연결 모드를 전환하는 데 사용할 수 있는 애플리케이션 규칙
6.0.x, 6.1.0, 6.1.1 HTTP 서버 닫기 HAProxy 문서에 지정된 대로 각 요청에 강제로 xff가 추가되도록 option httpclose가 가상 서버에 자동으로 추가됩니다. 클라이언트에서 백엔드 서버에 각 요청이 발송될 때 각 요청에 xff 헤더가 추가됩니다. 아니요
6.1.2 - 6.1.4 HTTP 서버 닫기 HTTP 수동 닫기(option httpclose가 가상 서버에 자동으로 추가됨)

no option http-server-close

option httpclose

no option httpclose

6.1.5 - 6.1.x 6.2.0 - 6.2.2 HTTP 서버 닫기 클라이언트에서 백엔드 서버에 각 요청이 발송될 때 각 요청에 HTTP Server Close xff 헤더가 추가됩니다.

no option http-server-close

option httpclose

no option httpclose

6.2.3-6.2.5 HTTP 서버 닫기 클라이언트에서 백엔드 서버에 각 요청이 발송될 때 각 요청에 HTTP Server Close xff 헤더가 추가됩니다.

no option http-server-close

option httpclose

no option httpclose

6.2.3-6.2.5 HTTP 서버 닫기 클라이언트에서 백엔드 서버에 각 요청이 발송될 때 각 요청에 HTTP Server Close xff 헤더가 추가됩니다.

no option http-server-close

no option httpclose

option httpclose

6.2.5 - 6.2.x HTTP 서버 닫기 클라이언트에서 백엔드 서버에 각 요청이 발송될 때 각 요청에 HTTP Server Close xff 헤더가 추가됩니다.

no option http-server-close

option http-keep-alive

option http-tunnel

option httpclose

option forceclose