nginx 구성 파일 내에서 세션 값을 검색할 수 있습니까?

nginx 구성 파일 내에서 세션 값을 검색할 수 있습니까?

그냥 간단한 질문입니다. 사용자 이름, isAdmin 등의 값으로 세션 쿠키를 설정하는 PHP 웹앱이 있습니다. nginx 구성 파일에서 해당 정보를 추출할 수 있는 방법이 있습니까?

log_format custom ' "TEST: $cookie_PHPSESSID"';

그러면 쿠키의 세션 ID가 제공되지만 콘텐츠가 필요하고 이를 검색할 방법을 찾을 수 없습니다.

영구 쿠키를 사용하면 효과가 있지만 사용자가 쿠키 값을 쉽게 변경할 수 있으므로 좋지 않은 생각입니다.

미리 감사드립니다, 필리

답변1

Nginx 구성 파일 내에서 세션 값을 직접 검색하는 것은 불가능합니다. Nginx 구성 파일은 시작 시 구문 분석되어 들어오는 요청을 처리하는 데 사용되는 정적 구성입니다. PHP 애플리케이션에서 처리하는 세션 데이터와 같은 동적 런타임 정보에 액세스할 수 없습니다.

그러나 Nginx의 세션 데이터에 액세스하는 데 사용할 수 있는 몇 가지 해결 방법이 있습니다. 한 가지 접근 방식은 Nginx에서 역방향 프록시 설정을 사용하는 것입니다. 이 설정에서 Nginx는 동적 콘텐츠를 처리하는 Apache 또는 PHP-FPM과 같은 백엔드 애플리케이션 서버에 요청을 전달하는 프런트엔드 서버 역할을 합니다.

location / {
    proxy_pass http://backend;
    proxy_set_header Cookie $http_cookie;
}

또 다른 접근 방식은 Nginx와 PHP 애플리케이션 모두에서 액세스할 수 있는 공유 저장소에 세션 데이터를 저장하는 것입니다. 예를 들어 세션 데이터를 데이터베이스나 키-값 저장소에 저장하고 Nginx를 사용하여 쿠키의 세션 ID를 기반으로 저장소에서 데이터를 검색할 수 있습니다.

관련 정보