세션 타임아웃 해결
Source: Dev.to
세션 타임아웃을 확인하려면 두 가지 요소를 살펴봐야 합니다: phpMyAdmin 내부 세션 쿠키와 mod_auth_openidc가 관리하는 OpenID Connect (OIDC) 세션입니다.
phpMyAdmin 세션 타임아웃
- 설정 파일:
config.inc.php(보통/etc/phpmyadmin/config.inc.php에 위치하지만, Nginx, 컨테이너 등 환경에 따라 다를 수 있습니다). - 확인할 변수:
LoginCookieValidity. - 기본값:
1440초 (24 분).
// 예시: 기본값은 1440초 (24분)
더 긴 TTL이 필요하면 원하는 초 단위(예: 7200 초 = 2 시간)로 해당 라인을 수정하세요.
OIDC 세션 타임아웃
- 모듈:
mod_auth_openidc(Apache OpenID Connect 의존 파티 모듈). - 설정 파일:
auth_openidc.conf(OS 및 호스트/가상호스트 설정에 따라 경로가 다름). - 확인할 파라미터:
OIDCSessionInactivityTimeout. - 기본값: 명시적인 타임아웃이 설정되지 않은 경우
300초 (5 분).
# /etc/apache2/conf-available/auth_openidc.conf
OIDCSessionInactivityTimeout 300 # 기본 비활성 타임아웃 (초)
변경 적용하기
OIDC 설정 조정
OIDC 설정 파일에 다음 지시자를 추가하거나 수정하세요.
# 유휴 세션 타임아웃을 30분(1800초)으로 설정
OIDCSessionInactivityTimeout 1800
# 필요에 따라 최대 세션 지속 시간 제한 (예: 8시간)
OIDCSessionMaxDuration 28800
phpMyAdmin 설정 조정
config.inc.php 파일에서 LoginCookieValidity 라인을 원하는 TTL(예: 2 시간)로 업데이트합니다.
// 예시: 세션 쿠키 유효 기간을 7200초(2시간)로 설정
$cfg['LoginCookieValidity'] = 7200;
설정 검증하기
-
Apache 구문 검사
apachectl configtest -
서비스 재로드 또는 재시작
systemctl reload apache2 # 필요 시 `restart` 사용 -
서비스 상태 확인
systemctl status apache2 -
로그인 흐름을 테스트하고 타임아웃 동작이 정상인지 확인하여 문제가 해결됐는지 검증합니다.
마무리 말씀
- 백업: 변경 전 관련 설정 파일을 모두 백업하세요.
- 계획: 수정 계획을 수립하고 동료 검토를 받으며, 롤백 전략을 마련해 두세요.
- 테스트: 먼저 비프로덕션 환경에서 테스트하고, 프로덕션 환경은 더 복잡할 수 있음을 유념하세요.
- 모니터링: 배포 후 새로운 타임아웃 값이 기대대로 동작하는지 지속적으로 모니터링하세요.