프로덕션 환경에서 Apache에서 실행되는 Flask 애플리케이션이 있습니다. 정적 파일이 있지만 인증 된 액세스가 필요합니다. 그래서 X-sendfile을 인증 한 후 파일 전송 속도를 높이기 위해 합리적인 듯 사용 :X-Sendfile을 사용한 플라스크 개발 서버
flaskapp = flask.Flask()
flaskapp.use_x_sendfile = True
을 그럼 난 응답을 생성하고있어 여기서
return flask.send_file(filepath)
아파치에서 잘 작동하는 것 같다. 내가 개발 서버 실행할 때 문제가 : 나는 그것을 use_x_sendfile = True
이 방법을 실행하면
# Use SharedDataMiddleware to deliver JS, CSS, icons, etc.
flaskapp.wsgi_app = SharedDataMiddleware(flaskapp.wsgi_app, {'/static': '/path/to/static'})
flaskapp.run(host='0.0.0.0', debug=True)
을의 X-sendfile을 헤더는 실제 응답에 표시하고 빈 파일 (0 바이트) 클라이언트에 전달 . X-Sendfile을 끄고 브라우저가 캐시 된 파일을 삭제하도록 강요하면 문제가 해결되므로 Werkzeug 서버 Flask가 X-Sendfile 헤더를 처리하지 않는 것으로 보입니다. 개발 서버가 X-Sendfile을 처리 할 수있게하는 방법이 있습니까? 아니면 개발 중에 이것을 강제로 해제해야합니까?
감사 팁을위한 :
run
에 추가 키워드 인수 WERKZEUG의run_simple
에 통과로는, BTW, 당신은 사용할 수 있습니다, 미들웨어를 직접 만들 필요가 없습니다. 나는 Flask의 사이트에서'SharedDataMiddleware'를 구할 수 있습니다. – jpmc26