2011-03-29 4 views
1

장고 관리자의 비활성 시간 초과를 어떻게 늘립니까? 기본값은 매우 짧아 보입니다. 몇 분만 지나면 제한 시간이 초과 된 것처럼 보입니다. 이는 매우 성가신 일입니다. 참고, 나는 SESSION_COOKIE_AGE을 알고 있지만 공용 사이트의 시간 제한을 적용하기 위해이 변경을 원하지는 않습니다.Django 관리자 비활성 시간 초과 변경

+0

어떤 활동 시간 초과? 몇 분 후에 관리자 사이트에서 로그 아웃했다는 뜻입니까? 그렇다면 설정에 문제가 있습니다. 브라우저가 쿠키를 올바르게 저장하지 않았을 수 있습니다. –

+0

세션 백엔드에 무엇을 사용하고 있습니까? – GDorn

+0

@Roseman, 파이어 폭스, 크롬, IE가 모두 망가지지 않는 한, 장고 설정에 문제가있을 수 있습니다. – Cerin

답변

0

그래서 두 가지 원인이 있습니다. 첫 번째는 만료되기 전에 세션을 잃어 버리는 것입니다. SESSION_COOKIE_AGE의 기본값은 2 주입니다. 세션이 오래 지속되지 않으면 백엔드가 캐시를 사용하고 있지 않거나 캐시가 가득 차 있지 않은지 확인하십시오. 따라서 캐시가 가득 차 있지 않은지 확인하십시오.

settings.SESSION_SAVE_EVERY_REQUEST를 사용하여 모든 요청에 ​​대해 세션을 강제로 새로 고칠 수는 있지만 사용중인 사이트에서 성능 문제가있을 수 있습니다.

다른 가능성은 SESSION_COOKIE_AGE를 의도적으로 작게 설정했지만 이제는 관리 쿠키가 더 길어지기를 바랍니다. 관리자 세션 시간 초과를 일반 사용자 시간 초과와 분리 할 수있는 방법은 없습니다.

사용자를 요청에서 제외시키는 미들웨어를 작성하고 user.is_staff를 확인한 후 request.session.set_expiry()를 호출하여 수동으로 만료 시간을 푸시 할 수 있습니다.

0

다른 세션 시간 초과 설정을 수행하는 한 가지 방법은 사이트 인스턴스 두 개를 실행하는 것입니다. 관리자 페이지가 사용 가능하고 admin_settings.py 파일이 있고 공개적으로 사용할 수있는 일반 사이트가있는 경우에만 사용자에게 액세스 할 수 있습니다 (예 : localhost : 8080에서 실행).

서버 설정에 따라 이것은 Apache와 VirtualHosts에서 쉽게 수행됩니다 (다른 설정이있을 수 있으므로 자세한 내용은 다루지 않습니다).

그런 다음 SSH 터널을 사용하여 서버의 로컬 호스트에서 실행중인 관리 사이트에 액세스 할 수 있습니다.

또 다른 옵션은 관리 사이트를 항상 실행하지 않으려면 manage.py runserver를 사용하여 사이트의 인스턴스를 실행하고 관리자 설정을 전달하는 것입니다 (이상적으로 만 실행 서버가 트래픽을 처리 할 수 ​​있어야합니다.) :

$ python manage.py runserver --settings=admin_settings localhost:8080 

그런 다음 SSH 터널을 통해 액세스하십시오. 이 방법으로 SSH 터널을 피하고 싶다면 공개적으로 실행하는 방법을 살펴보십시오. 그러나 스턴넬을 통해 설명 할 수 있습니다. here