4.17. 각 컨트롤러에서 ID 서비스(keystone)에 프록시 지속성 사용
mod_auth_mellon 이 세션을 설정할 때 여러 서버에서 상태 정보를 공유할 수 없습니다. SAML에서 사용하는 리디렉션 수가 많은 경우 상태 정보가 필요하므로 동일한 서버에서 모든 트랜잭션을 처리해야 합니다. 따라서 각 클라이언트의 요청을 매번 동일한 서버로 전송하도록 HAProxy를 구성해야 합니다.
HAProxy에서 클라이언트를 동일한 서버에 바인딩하는 방법은 두 가지가 있습니다.
- 유사성
- 애플리케이션 계층 아래의 정보를 사용하여 클라이언트 요청을 단일 서버에 고정할 때 선호도를 사용합니다.
- 지속성
- 애플리케이션 계층 정보가 단일 서버 고정 세션에 클라이언트를 바인딩할 때 지속성을 사용합니다. 지속성은 선호도보다 훨씬 더 정확합니다. 다음 절차를 사용하여 지속성을 구현합니다.
HAProxy 쿠키 지시문은 쿠키 및 지속성을 위해 매개 변수의 이름을 지정합니다. HAProxy 서버 지시문에는 쿠키 값을 서버 이름으로 설정하는 쿠키 옵션이 있습니다. 들어오는 요청에 백엔드 서버를 식별하는 쿠키가 없으면 HAProxy는 구성된 분산 알고리즘을 기반으로 서버를 선택합니다.
절차
/var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg구성 파일의keystone_public블록에서 지속성을 활성화하려면 다음 행을 추가합니다.cookie SERVERID insert indirect nocache
cookie SERVERID insert indirect nocacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 설정은
SERVERID가 지속성 쿠키의 이름입니다.각
서버행을 편집하고 추가 옵션으로cookie <server-name>을 추가합니다.server controller-0 cookie controller-0 server controller-1 cookie controller-1
server controller-0 cookie controller-0 server controller-1 cookie controller-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow