반응형 session clustering3 Spring Security - Nginx LB + 세션 클러스터링(Session Clustering) ③ ③ 편을 정리하기 앞서 ①, ② 편에 대해서 정리를 하고 진행하도록 하겠습니다. 1. ①, ② 편의 목적은 Nginx의 LB 기능을 이용하여 무중단 배포를 하려고 함입니다. 1-1. ① 편에서는 Session Clustering을 위해 스프링의 Session을 위부 Redis로 이관하였습니다. 1-2. ② 편에서는 로컬에서 개발한 ① 편의 스프링을 개발 서버의 스펙에 맞게 수정과 추가를 하였습니다. 2. 그럼 여기서 무중단 배포를 하려고 하는데 왜 갑자기 Session Clustering이지?라고 생각할 수 있습니다. 혹은 그냥 Nginx conf 파일 설정해서 port 다르게, LB 사용해서 애플리케이션 2개 띄우면 되는 거 아니야?라고 생각할 수도 있습니다. 3. 그러나 제가 프로젝트에서 사용한 인증.. 2022. 2. 21. Spring Security - Nginx LB + 세션 클러스터링(Session Clustering) ② ① 편에서는 Session Clustering을 위해 Session 저장소를 Spring 내부가 아닌 Key-Value 형태의 DB인 Redis에 저장하고 확인해봤습니다. 또한 ① 편에서 만든 스프링은 로컬 환경에 초점을 두고 있었습니다. ② 편에서는 개발 서버에 배포할 수 있도록 ① 편 스프링에 몇 가지 코드를 추가하도록 하겠습니다. 그럼 먼저 포스트에 사용되는 기술들의 버전 정보에 대해 나열하도록 하겠습니다. ① 편의 로컬 개발 환경과 배포할 Docker 환경의 다른 부분이 있으니 주의하세요. 개발 도구: IntellJ Ultimate Spring Boot: 2.5.9 Gradle Docker CentOS 7 => Docker Container Nginx => CentOS 7에 설치 MySQL 5.7.. 2022. 2. 17. Spring Security - Nginx LB + 세션 클러스터링(Session Clustering) ① 애플리케이션을 배포했을 때 비정상적으로 종료될 수 있기 때문에 사수님께서 Nginx를 사용하여 무중단 배포를 구축해보라고 하셨었습니다. 그래서 Nginx의 LB(Load Balancing) 기능을 사용하여 위 "구성도(이때 당시는 Redis가 없음)"처럼 배포하였습니다. 개발 중이던 Spring 애플리케이션은 Spring Security의 Form 인증(Session/Cookie) 방식을 사용하고 있었습니다. 별도로 Session을 관리하는 저장소(Redis) 없이 2개의 Spring 애플리케이션을 배포하고 테스트해본 결과 8080에서 로그인하여 여러 번 요청(Nginx에 weight를 설정했습니다.)을 보내서 8081 포트의 Spring으로 요청했을 때 8081 기준으로는 인증되지 않은 요청이기 때문에.. 2022. 2. 9. 이전 1 다음 반응형