Ho esattamente lo stesso problema descritto in this SO question and answer. La risposta a questa domanda è un bel lavoro, ma non capisco il problema fondamentale. Terminare SSL al servizio di bilanciamento del carico e utilizzare HTTP tra il servizio di bilanciamento del carico e i server web/app è molto comune. Quale pezzo della pila non sta rispettando l'X-Forwarded-Proto? È werkzeug? Pallone? uwsgi?X-Forwarded-Proto e Flask
Nel mio caso sto usando un ELB AWS (che imposta X-Forwarded-Proto) => Nginx (che inoltra lungo X-Forwarded-Proto a uwsgi). Ma nell'app python devo sottoclasse la richiesta di flask come descritto nella domanda che ho citato sopra.
Poiché si tratta di uno scenario di distribuzione così comune, sembra che ci dovrebbe essere una soluzione migliore. Cosa mi manca?
Rannuato in questo problema, nel mio ambiente di sviluppo utilizzando Apache come proxy inverso, X-Forwarded-Proto è stato trasmesso e rispettato correttamente ... in prod, ELB stava passando l'intestazione correttamente ma per qualche motivo non funzionava (ancora non sono sicuro del perché) ma ProxyFix ha risolto il problema. – daveruinseverything
Questa è un'ottima informazione! Ma sono ancora curioso di sapere "Quale pezzo della pila non rispetta l'X-Forwarded-Proto? È werkzeug? Flask? Uwsgi?" Oppure l'intestazione X-Forwarded-Proto non dovrebbe essere "rispettata" a meno che non specifichiamo che esiste un proxy fidato che sta scrivendo quelle intestazioni? –
@NealGokli: il secondo. Chiunque sia su Internet potrebbe impostare quell'intestazione. –