nginx 부하 균형 해결 session 문제

1864 단어 기술 잡담
문제 장면
세 션 은 서버 에 사용자 의 로그 인 정 보 를 저장 하 는 데 사용 되 는 것 으로 부하 균형 을 사용 할 때 백 엔 드 의 서버 ip 이 고정 되 어 있 지 않 기 때문에 사용자 가 웹 페이지 를 새로 고침 한 후에 로그 인 정보 가 효력 을 잃 고 주문 이상 등 일련의 문 제 를 초래 할 수 있다 는 것 을 잘 알 고 있 습 니 다.
해결 방법
일반적으로 다음 과 같은 방법 으로 이 문 제 를 해결한다
  • nginx ip_hash nginx 부하 균형 전략 을 통 해 iphash 는 데이터 의 지속 화 를 유지 합 니 다. 원 리 는 클 라 이언 트 가 방문 할 때 nginx 는 클 라 이언 트 의 ip 를 고정된 hash 값 으로 바 꾸 고 같은 클 라 이언 트 의 연속 적 인 웹 요청 은 같은 서버 에 나 누 어 처리 하여 요청 상 태 를 유지 하 는 완전 성 을 가 집 니 다.

  • PS: 주의해 야 할 것 은 이런 상황 은 nginx 가 최전선 에 있 는 상황 에서 만 적용 된다 는 것 입 니 다. 대형 사이트 의 구조 체계 에서 nginx 부하 균형 아래 에 각종 미들웨어 등 상황 이 있 을 수 있 습 니 다. 이런 상황 이 발생 하면 상기 문제 가 발생 할 수 있 습 니 다!
    upstream example.com  
       {   
                server 192.168.1.101:80;   
                server 192.168.1.102:80;  
                ip_hash;  
       }  
       server  
       {  
                listen 80;  
                location /  
                {  
                       proxy_pass  
                       http://example.com;  
                }  
    }  
    
  • redis / memcached 등 캐 시 서버 를 사용 하여 redis 를 사용 하 는 것 은 제 가 개인 적 으로 좋아 하 는 방식 입 니 다. 이유 도 간단 합 니 다. 왜냐하면 이것 은 현재 시장 에서 가장 많이 사용 되 고 속도 가 가장 빠 른 비 관계 형 데이터 베이스 이기 때 문 입 니 다!그것 은 정말 빠르다, 빠르다, 빠르다!

  • 물론 개발 에 대해 서 는 session 모듈 을 나 누 어 쓰 고 시스템 I / O 에 대한 수요 가 높 은 모듈 (예 를 들 어 session, 캐 시, 대기 열 데이터, 임시 중 전 데이터 등) 을 redis 를 통 해 저장 할 수 있다 고 알려 야 합 니 다.주의해 야 할 것 은 먼저 군집 을 잘 만들어 지속 화 를 잘 해 야 한 다 는 것 이다!그렇지 않 으 면 또 중대 한 생산 사고 가 발생 할 것 이다.

    좋은 웹페이지 즐겨찾기