세션 지속성은 클라이언트의 요청을 "세션" 기간 또는 작업이나 트랜잭션을 완료하는 데 걸리는 시간 동안 동일한 백엔드 웹 또는 애플리케이션 서버로 전달하는 것을 말합니다.

트래픽이 많은 웹사이트는 빠르고 안정적인 방식으로 수십만 명, 수백만 명의 사용자를 지원해야 합니다. IT 조직에서는 서버를 서버 팜 이라고 불리는 그룹으로 그룹화하여 이러한 대량의 볼륨을 지원합니다. 로드 밸런서는 서버 그룹 앞에 위치하여 효율성을 극대화하는 방식으로 개별 서버로 트래픽을 전달합니다.

사용자가 5분 동안 웹사이트를 탐색한다면, 그는 아마도 여러 백엔드 서버에서 정보를 가져올 것입니다. 매번 같은 서버에 접속하지 않으면 웹 브라우저나 백엔드 서버가 사용자의 다음 동작을 더 빨리 수행할 수 있도록 정보를 저장하여 웹 경험을 개선하려고 할 때 문제가 발생할 수 있습니다. 이 경우에는 모든 사용자 요청이 동일한 서버로 전송되는 것이 중요합니다. 꼭 그렇다고 할 수는 없습니다.

성능을 높이기 위해 백엔드 서버는 사용자가 요청한 데이터를 캐시하고, 사용자가 요청할 수 있다고 생각되는 추가 정보를 미리 캐시할 수도 있습니다. 많은 경우, 사용자에게는 단일 요청처럼 보이는 것(예: 대용량 문서 다운로드)이 실제로는 여러 개의 요청-응답 트랜잭션으로 분할되어 클라이언트와 서버 간에 전송됩니다. 사용자가 요청한 정보를 받는 가장 효율적인 방법은 해당 정보를 이미 캐시한 서버에 액세스하는 것입니다.

다른 경우에는 사용자가 양식 작성, 제품 구매, 계정 업그레이드 등 여러 단계가 필요한 거래에 참여할 수도 있습니다. 클라이언트와 서버가 데이터를 교환할 때, 트랜잭션이 원활하게 진행되도록 세션에 대한 상태 정보( 컨텍스트 라고 함)를 저장해야 합니다. 이 경우 세션 지속성을 통해 거래를 성공적으로 완료하기가 훨씬 쉬워집니다.

부하 분산 장치 또는 애플리케이션 전송 컨트롤러(ADC)는 서버 그룹 앞에 위치하여 사용자 세션을 필요한 기간 동안 특정 서버에 연결하는 로직을 구현합니다.

NGINX Plus는 어떻게 도움이 될 수 있나요?

NGINX PlusNGINX는 Dropbox, Netflix, Zynga 등 트래픽이 많은 웹사이트에서 사용하는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계적으로 3억 5천만 개가 넘는 웹사이트가 NGINX Plus와 NGINX 오픈 소스를 통해 콘텐츠를 빠르고 안정적이며 안전하게 전송합니다.

소프트웨어 기반 로드 밸런서인 NGINX Plus는 비슷한 기능을 갖춘 하드웨어 솔루션보다 상당히 저렴합니다. NGINX는 쿠키와 스티키 경로를 사용하는 것을 포함하여 여러 가지 방법으로 세션 지속성을 기본적으로 관리합니다.