2017-01-10 9 views
0

나는 Flask으로 웹 사이트를 쓰고 있습니다. 나는 Flask-Secuirty을 사용하여 인증을합니다. 배포하려면 nginx + gunicorn을 사용합니다.플라스크 보안은 여러 명의 근로자가있는 gunicorn에서 작동하지 않을 수 있습니까?

다음과 같은의 nginx의 구성 :

server{ 
    listen 80; 
    server_name project.example.com; 
    location/{ 
     proxy_pass http://127.0.0.1:5000; 

     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 
    } 
} 

내가 gunicorn을 시작 gunicorn -w worker_number -k gevent run:app -p app.pid -b 127.0.0.1:5000를 사용합니다.

worker_number1 인 경우 모든 사항이 정상입니다.

worker_number이 보다 큰 경우 3과 같이 Flask-Security으로 로그인 할 수 없습니다.

서버의 출력은 로그인의 게시물 요청이 200이라고했지만 서버가 다시 로그인 페이지로 리디렉션됩니다.

일부 검색 후, 나는 이것의 직접적인 이유를 찾을 수 없습니다. 그리고 이것은 SERVER_NAME 플라스크의 설정 또는 Flask-SQLAlchemy의 오용으로 인해 발생할 수 있습니다 같아요.

이전에이 상황을 만난 사람이 있습니까? 제게 조언 해주세요.

답변

0

Flask-Session과 같은 것을 사용하고 세션 저장소로 Redis를 사용하십시오. Flask-Security가 어떻게 작동하는지 모르겠지만 Flask 세션에 의존한다고 가정합니다.이 경우 Flask 세션은 응용 프로그램 서버간에 전환하는 사용자 세션의 문제를 해결합니다.