2014-07-23 2 views
1

이 문제는 웹에서 논의되었지만 해결 방법에 대한 설명이 명확하지 않습니다. 특히 플라스크에 익숙하지 않은 경우 특히 그렇습니다. 요청이 HTTPS로 완료 되더라도 플라스크가 Heroku의 gunicorn에서 실행 중일 때 request.is_secure가 항상 False를 반환하는 것이 문제입니다. 저는 플라스크 0.8와 gunicorn 19.0.0을 사용하고 있습니다.플라스크의 요청에 문제가 있습니다. gunicorn과 heroku를 플라스크와 함께 사용합니다.

찾았습니다. this 링크가 있는데, 그 내용으로 gunicorn.py라는 파일을 만드는 것처럼 보이지만, 방금 Heroku 서버에서 가져 오기 오류가 발생했습니다.

app.secure_proxy_ssl_header = ('HTTP_X_FORWARDED_PROTO', 'https') 
app.forwarded_allow_ips = '*' 
app.x_forwarded_for_header = 'X-FORWARDED-FOR' 
app.secure_scheme_headers = { 
'X-FORWARDED-PROTO': 'https', 
} 

하지만 여전히 주사위 : 그럼 이러한 설정을 복용하고 수행하여 내 app 플라스크 개체에 직접 적용했습니다. 누군가 내가해야 할 일과 구성을 어디에 넣어야하는지 명확하게 설명해 주시겠습니까?

답변

1

해결책은 내가 생각했던 것보다 훨씬 간단했다.

from werkzeug.contrib.fixers import ProxyFix

나는 이미 문제를 해결 알고 다음

app.wsgi_app = ProxyFix(application.wsgi_app)

+0

'ProxyFix (application.wsgi_app)'대신 'ProxyFix (app.wsgi_app)'여야합니까? –

2

, 그러나 나는 비슷한 문제를 가지고 아파치에서 두 번째에 RequestHeader을 설정했다 : 내가해야 할 일을했을 모든했다 :

ProxyPreserveHost On 
    RequestHeader set X-Forwarded-Proto "https" 
    RequestHeader set X-Scheme https 
    Timeout 300 
    ProxyTimeout 300 

그리고 그 것으로 보입니다.

+0

이것은 생명의 은인입니다! – Aitvaras

관련 문제