nginx 세 션 유지 sticky 모듈

3842 단어 nginx
1. 부하 균형 을 사용 할 때 세 션 유지 에 문제 가 발생 할 수 있 습 니 다. 자주 사용 하 는 방법 은 1.1. ip hash 입 니 다. 클 라 이언 트 의 IP 에 따라 서로 다른 서버 에 요청 을 할당 합 니 다.1.2. cookie, 서버 가 클 라 이언 트 에 게 다음 쿠키 를 보 내 고 특정한 쿠키 를 가 진 요청 은 게시 자 에 게 분 배 됩 니 다.메모: 쿠키 는 브 라 우 저의 지원 이 필요 하고 데이터 가 유출 될 때 도 있 습 니 다. 2. Sticky 작업 원리: Sticky 는 nginx 의 한 모듈 로 쿠키 를 기반 으로 하 는 nginx 의 부하 균형 솔 루 션 입 니 다. 쿠키 를 배포 하고 식별 함으로써 같은 클 라 이언 트 의 요청 을 같은 서버 에 떨 어 뜨 립 니 다. 기본 표 지 는 route 입 니 다.2.1. 클 라 이언 트 가 처음으로 방문 요청 을 했 습 니 다. nginx 가 받 은 후에 요청 헤더 에 쿠키 가 없 는 것 을 발견 하면 폴 링 방식 으로 요청 을 백 엔 드 서버 에 배포 합 니 다.2.2. 백 엔 드 서버 가 요청 을 처리 하고 응답 데 이 터 를 nginx 에 되 돌려 줍 니 다.2.3. 이때 nginx 는 route 가 있 는 쿠키 를 생 성하 여 클 라 이언 트 에 게 되 돌려 줍 니 다.route 의 값 은 백 엔 드 서버 와 대응 되 며 명문 일 수도 있 고 md5 (기본 md5), sha 1 등 Hash 값 일 수도 있 습 니 다.2.4. 클 라 이언 트 가 요청 을 받 고 route 가 있 는 쿠키 를 저장 합 니 다.2.5. 클 라 이언 트 가 다음 에 요청 을 보 낼 때 route 를 가 져 옵 니 다. nginx 는 받 은 쿠키 의 route 값 에 따라 해당 하 는 백 엔 드 서버 에 전달 합 니 다.3. nginx 재 컴 파일 nginx - sticky - module 모듈 추가 (제3자)3.1 다운로드 및 압축 해제 다운로드 주소:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/downloads/ 압축 파일 을 / data / server / 이 디 렉 터 리 로 압축 해제 하고 폴 더 이름 을 nginx - sticky - module 백업 / data / server / nginx / conf 디 렉 터 리 에 있 는 프로필 3.2 로 바 꿉 니 다. 현재 nginx 컴 파일 파 라미 터 를 조회 하려 면 다음 명령 을 사용 할 수 있 습 니 다. / nginx - V 명령 을 사용 하여 컴 파일 을 볼 때 참조 하 십시오.세다
[root@mgddrefsdf ~]# /data/server/nginx/sbin/nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/data/server/nginx --with-http_ssl_module --add-module=/data/server/nginx-sticky-module

3.3 컴 파일 및 설치
cd /data/server/nginx-1.14.0/
./configure --prefix=/data/server/nginx --with-http_ssl_module --add-module=/data/server/nginx-sticky-module
make
make install

3.4. 프로필 은 이전에 백업 한 nginx 프로필 을 / data / server / nginx / conf 의 기본 프로필 로 덮어 쓰 고 편집 합 니 다.
upstream www.abc.com {
   sticky;
   server 10.0.0.11:8080;
   server 10.0.0.12:8080;
}

3.5. 테스트 검증 사 이 트 를 열 어 테스트 하고 sticky 를 사용 하 는 경우 같은 세 션 을 아무리 새로 고침 해도 같은 백 엔 드 서버 에 부하 된다.모든 백 엔 드 의 실제 서버 에 유일한 route 값 이 있 기 때문에 실제 서버 전단 에 sticky 가 설 치 된 nginx 프 록 시 가 몇 개 있 든 변 하지 않 습 니 다.3.6. sticky 모듈 의 사용 \ # 매개 변수, sticky [name = route] [domain =. foo. com] [path = /] [expires = 1h]       [hash=index|md5|sha1] [no_fallback] [secure] [httponly]; [name = route] 세 션 을 기록 하 는 쿠키 이름 [domain =. foo. com] 설정 쿠키 역할 을 하 는 도 메 인 이름 [path = /]  쿠키 역할 의 URL 경 로 를 설정 합 니 다. 기본 루트 디 렉 터 리 [expires = 1h] 는 쿠키 의 생존 기간 을 설정 합 니 다. 기본 값 은 설정 하지 않 습 니 다. 브 라 우 저 를 닫 으 면 효력 이 없습니다. 1 초 이상 의 값 이 필요 합 니 다 [hash = index | md5 | sha1]   쿠키 에 있 는 서버 의 표 지 를 명문 으로 사용 할 지 md5 값 으로 사용 할 지 설정 합 니 다. 기본적으로 md5 [no fallback] 를 사용 하여 설정 합 니 다. sticky 백 엔 드 기기 가 끊 긴 후에 nginx 는 다른 서버 로 전송 하지 않 고 502 (Bad Gateway or Proxy Error) 로 돌아 갑 니 다. [secure] 설정 을 권장 하지 않 습 니 다.  보안 쿠키 를 사용 하려 면 HTTPS 지원 [httponly] 이 필요 합 니 다.  쿠키 가 JS 를 통 해 3.7 을 누설 하지 않도록 허용 합 니 다. 기타 주의해 야 할 3.7.1. 같은 클 라 이언 트 의 요청 은 서로 다른 백 엔 드 서버 에 떨 어 질 수 있 습 니 다. 클 라 이언 트 가 시 작 될 때 여러 요청 을 동시에 할 수 있 습 니 다.이 요청 들 은 모두 쿠키 를 가지 고 있 지 않 기 때문에 서버 는 랜 덤 으로 백 엔 드 서버 를 선택 하여 서로 다른 쿠키 를 되 돌려 줍 니 다.이 요청 의 마지막 요청 이 돌아 올 때 클 라 이언 트 의 쿠키 가 안정 되 고 마지막 으로 돌아 오 는 쿠키 를 기준 으로 합 니 다.3.7.2. 쿠키 는 반드시 효력 이 발생 하지 않 습 니 다. 쿠키 가 서버 에서 최초 로 발송 되 었 기 때문에 클 라 이언 트 가 쿠키 를 사용 하지 않 으 면 쿠키 가 효력 이 발생 하지 않 습 니 다.3.7.3. 클 라 이언 트 가 쿠키 를 가지 고 있 지 않 을 수 있 습 니 다. Android 클 라 이언 트 가 요청 을 보 낼 때 모든 쿠키 를 가지 고 가지 않 습 니 다. 어떤 쿠키 가 가지 고 있 는 지 명확 하 게 지정 해 야 합 니 다.스티커 로 부하 균형 을 맞 추 려 면 안 드 로 이 드 개발 에 쿠키 를 추가 하 라 고 하 세 요.3.7.4. 쿠키 이름 은 업무 에 사용 되 는 쿠키 와 이름 을 바 꾸 지 않 습 니 다. Sticky 의 기본 쿠키 이름 은 route 이 므 로 모든 값 으로 변경 할 수 있 습 니 다.3.7.5. 클 라 이언 트 가 보 낸 첫 번 째 요청 은 쿠키 가 없 는 것 입 니 다. 서버 에서 보 낸 쿠키 는 클 라 이언 트 가 다음 요청 을 할 때 만 효력 이 발생 합 니 다.3.7.6. Nginx sticky 모듈 은 iphash 동시 사용.

좋은 웹페이지 즐겨찾기