1
我跟着uwsgi的片段之一嘗試啓用hsts。這是我目前的配置:UWSGI在Heroku上實現hsts
[uwsgi]
http-socket = :$(PORT)
master = true
processes = 4
die-on-term = true
module = webapp:app
memory-report = true
check-static = %v/webapp/static/
route= ^/?$ static:%v/webapp/static/pages/index.html
route-host = ^localhost:(?:[0-9]+)$ last:
route-if-not = equal:${HTTPS};on redirect-permanent:https://${HTTP_HOST}${REQUEST_URI}
route-if = equal:${HTTPS};on addheader:Strict-Transport-Security: max-age=31536000
route = .* last:
我想要做的是強制除了localhost之外的任何東西。該網站在localhost上工作,但在heroku上,根本不會重定向到主頁的請求,並且對靜態資產的請求會進入無限循環,甚至https請求也會被重定向。
編輯
的問題是,Heroku的負載平衡器並不安全地連接到到了極致。有沒有一種方法可以根據X-Forwarded-Proto
標題或基於完整的請求url包括協議(所以我可以將它匹配到^https:
)?
THX的評論@roberto。我只是想出了完全相同的答案,但如果你想把這個評論作爲答案,我會接受它,所以你會得到讚譽。 – bigblind
答案是什麼?有與你完全相同的問題,但我沒有看到它! – joerick
@joerick你的答案爲我工作。你可以在你的web應用中創建一個調試方法來打印'os.environ',這樣你就可以看到是否有其他頭文件給你提供你需要的信息。 – bigblind