nginx 군집 세 션 복사

2785 단어 session
원래 한 편 을 쓴 적 이 있 는데, 이 해 를 깊이 있 게 하기 위해 한 편 을 더 썼 다.
session

session replication        ,            session                 。
               down               session   。        。
session sticky       ,          ,   session   ,              ,down session   。

문제 해결
1)ip_hash

upstream backend { 
    server 172.16.3.10:8080 ; 
    server 172.16.3.11:9090 ; 
    ip_hash; 
    } 


추천 하지 않 음:
1 / nginx 는 최 전방 서버 가 아 닙 니 다.
   ip_hash 는 nginx 가 반드시 최 전방 서버 여야 합 니 다. 그렇지 않 으 면 nginx 가 정확 한 ip 을 얻 지 못 하면 ip 에 따라 hash 를 할 수 없습니다.예 를 들 어 squid 를 최 전방 으로 사용 하면 nginx 에서 ip 을 가 져 올 때 squid 의 서버 ip 주소 만 얻 을 수 있 습 니 다. 이 주소 로 분류 하 는 것 은 분명 잘못 되 었 습 니 다.
    2 / nginx 의 백 엔 드 에는 다른 방식 의 부하 균형 이 있다.
   만약 nginx 백 엔 드 에 또 다른 부하 균형 이 있다 면 요청 을 다른 방식 으로 분류 하면 한 클 라 이언 트 의 요청 은 같은 session 응용 서버 에 위치 할 수 없습니다.
   3 / 여 개의 외부 네트워크 출구.
    많은 회사 들 이 인터넷 에 접속 하면 여러 개의 출구, 여러 개의 ip 주소 가 있 고 사용자 가 인터넷 을 방문 할 때 자동 으로 ip 을 전환 합 니 다.그리고 이런 경우 도 적지 않다.ip 사용hash 는 이러한 상황 의 사용자 에 게 유효 하지 않 습 니 다. 특정한 사용 자 를 고정된 tomcat 에 연결 할 수 없습니다.
사용:
2)nginx_upstream_jvm_route (nginx 확장, 추천)
nginx_upstream_jvm_route 는 nginx 의 확장 모듈 로 쿠키 기반 의 Session Sticky 기능 을 실현 합 니 다.
쉽게 말 하면 쿠키 의 JSESSIONID 를 기반 으로 백 엔 드 에 요청 한 server, nginx 를 결정 합 니 다.upstream_jvm_route 는 사용자 가 백 엔 드 server 를 처음 요청 할 때 응답 하 는 server 표 지 를 쿠키 에 있 는 JSESSIONID 에 연결 하여 다음 요청 을 할 때 nginx 는 JSESSIONID 에 따라 어떤 백 엔 드 server 로 처리 할 지 결정 합 니 다.
1/ nginx_upstream_jvm_경로 설치
다운로드 주소 (svn):http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/
가정 nginxupstream_jvm_route 다운로드 후 경 로 는 / usr / local / nginx 입 니 다.upstream_jvm_route,
(1) nginx 소스 코드 에 들 어 가 는 경로
patch -p0 < /usr/local/nginx_upstream_jvm_route/jvm_route.patch
(2)./configure  --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.33 --add-module=/usr/local/nginx_upstream_jvm_route
(3)make & make install

upstream  tomcats_jvm_route
        {
             # ip_hash; 
              server   192.168.33.10:8090 srun_id=tomcat01; 
              server   192.168.33.11:8090 srun_id=tomcat02;
              jvm_route $cookie_JSESSIONID|sessionid reverse;
        }

tomcat 설정 server. xml 수정

 
<Engine name="Catalina" defaultHost="localhost" >
   :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat01">

구체 적 설정 참조
[url]
http://hanqunfeng.iteye.com/blog/1920994
[/url]

좋은 웹페이지 즐겨찾기