Nginx를 역방향 프록시로 사용하는 세션 지속성?

Nginx를 역방향 프록시로 사용하는 세션 지속성?

두 개의 Apache 서버를 업스트림 서버로 사용하여 NGINX를 역방향 프록시로 사용하고 있습니다.

두 Apache 서버 모두 사용자 정의 PHP 애플리케이션이 설치되어 있으며 동일한 MYSQL 데이터베이스를 공유합니다.

나는 Apache가 /var/lib/sessions에 세션을 저장한다고 믿습니다.

NGINX를 사용하는 경우 세션 관련 문제를 극복하는 방법은 무엇입니까? 나는 ip_hash를 이해합니다. 하지만 그게 유일한 실행 가능한 방법인가요?

사람들이 서버 측에서 이 문제를 어떻게 해결하는지 궁금하십니까?

답변1

엄밀히 말하면 이는 nginx와는 아무런 관련이 없으며, 여러 백엔드에 걸쳐 사용자에게 일관된 인증/권한 부여 시스템을 제공하기 위한 작업입니다. nginx 대신 로드 밸런싱 엔진을 사용할 수 있습니다.

표준 접근 방식:

  • memcached를 사용하여 세션 저장(memcache 작성자는 권장하지 않지만 이 방법이 널리 사용되며 심지어 PHP에서도 이에 대한 표준 지원을 제공합니다. php.ini에서 한 줄의 주석 처리를 제거해야 합니다)
  • 동일한 목적으로 redis를 사용하십시오
  • 최신 버전의 MySQL은 다음을 제공합니다.MySQL에 세션을 저장하기 위한 memcached-동일 인터페이스(이번에는 디스크 백업이 가능합니다.) - 이를 위해 원하는 것을 사용하세요. 유일한 것은 중앙 집중식 저장소여야 합니다.

관련 정보