2013-07-18 2 views
2

실제 솔루션없이 몇 시간을 낭비했습니다. 여기에 문제가 있습니다. 장고 관리자로 로그인하고 즉시 또는 몇 번의 클릭만으로 나는 버려졌습니다.uWSGI 프로세스가 장고 세션을 잃습니다

모든 설정과 구성에서 잠시 동안 보았습니다. 나는 로그인있어

www.example.com [pid: 20047|app: 0|req: 1120/2060] 217.9.101.34() {42 vars in 841 bytes} [Thu Jul 18 15:27:35 2013] GET /admin/ => ... 
www.example.com [pid: 20047|app: 0|req: 1122/2063] 217.9.101.34() {40 vars in 786 bytes} [Thu Jul 18 15:27:37 2013] GET /admin/auth/ => ... 
www.example.com [pid: 20047|app: 0|req: 1124/2066] 217.9.101.34() {40 vars in 801 bytes} [Thu Jul 18 15:27:39 2013] GET /admin/auth/user/ => ... 
www.example.com [pid: 20047|app: 0|req: 1125/2067] 217.9.101.34() {40 vars in 740 bytes} [Thu Jul 18 15:27:39 2013] GET /admin/jsi18n/ => ... 
www.example.com [pid: 19082|app: 0|req: 947/2072] 217.9.101.34() {42 vars in 841 bytes} [Thu Jul 18 15:27:41 2013] GET /admin/ => ... 
www.example.com [pid: 20047|app: 0|req: 1128/2081] 217.9.101.34() {42 vars in 841 bytes} [Thu Jul 18 15:27:44 2013] GET /admin/auth/ 

처음 몇 요청이 동일한 프로세스 ID를 가지고 그 어디에 그런 다음 다른 프로세스가 분명히이 내 옆에 요청 취한다 : uwsgi 예를 들어, 로그 파일에서 유일한 단서는 지금까지입니다. 프로세스가 내 세션에 대해 알지 못하고 로그 아웃됩니다. 다음 요청에 원래 ID가 다시 있지만 내 쿠키가 이미 재설정되었습니다.

나는 이미 모든 것을 시도했다. 프로젝트를 다시 설정하고, uwsgi 설정을 다시 설정하고, nginx를 확인하고, 모든 것을 재시작하지만 아무 도움이되지 않는다. 쿠키가 여러 컴퓨터의 여러 브라우저에 나타나기 때문에 쿠키 오류 일 수도 없습니다. 결국 쿠키가 설정되고 세션이 데이터베이스에 기록됩니다.

스택 장고 1.5.1, 파이썬 2.7, VIRTUALENV, buildout, MySQL은 5.5, nginx를, uwsgi, 우분투 12.04

어떤 아이디어가?

편집 :

이것은 uwsgi 설정입니다 :

[uwsgi] 
#vhost = true # tried to see if that helps 
plugins = python 
socket = /tmp/example.com.sock 
master = true 
enable-threads = true 
processes = 8 
cheaper = 2 
max-requests=1000 
reload-on-rss=110 
vacuum=True 
harakiri=20 
buffer-size=16384 # added to try if that helps 
wsgi-file = /var/www/blabla/.../django.wsgi 
virtualenv = /var/www/blabla 
chdir = /var/www/blabla/... 
touch-reload = /var/www/blabla/.../django.wsgi 
+0

사용 gunicorn을 uwsgi을 업데이트하는 것이 좋습니다. 가장 좋은 점은. –

+0

Django 앱에서 인증 또는 미들웨어와 관련하여 특별한 작업을 수행하고 있습니까? –

+0

@DanielRoseman 그냥 표준 물건, 다른 사용자가 불평하는 동안 그것은 또한 나를 위해 일한 지금은 종종이 오류를 테스트 ... – webjunkie

답변

2

당신이 당신의 SESSION_ENGINE을 확인 했습니까? 예를 들어 django 캐싱을 사용하도록 설정하고 locmem에 설정하면 : // 이런 종류의 문제가 발생할 것입니다.

또 다른 (일어날지라도 가능할 수 있습니다.) 문제 (- 레이지/-lazy-apps 모드)은 코드의 이전 복사본이있는 프로세스 일 수 있습니다. 전체 인스턴스를 다시로드 해 보았습니까? 기본적으로

+0

나는 SESSION_ENGINE 기본값에서 변경하지 않았습니다. 나는 또한 게으른 모드를 켜고 끄는 방법을 시도해 보았다. 또한 모든 uwsgi 프로세스를 중지하고 여러 번 시작했습니다. – webjunkie

+0

각 로그 라인 앞에있는 호스트 이름이 조금 의심 스럽습니다. 가상 호스트 모드입니까? 그렇다면 주문형 애플리케이션을로드 할 수 있습니까? 그렇다면 모든 모듈이 여러 명의 통역사에게 친숙합니까? – roberto

+0

요청시 무엇을 의미합니까? 나는 uwsgi 설정을 배치하고 uwsgi 서비스를 시작한다. – webjunkie

관련 문제