2014-09-22 7 views

risposta

4

Se è stato attivato il supporto del protocollo proxy, aggiunge l'intestazione del protocollo proxy proprietario di haproxy come prima cosa inviata nella richiesta TCP. In effetti, si aggiunge la seguente riga prima la richiesta http:

PROXY TCP4 192.168.0.1 192.168.0.11 56324 443 

Questo non è HTTP valido, in modo da giocare non lo supporta, se il gioco riceve una richiesta di questo tipo, sarà semplicemente restituire un errore.

È possibile installare un proxy sul nodo EC2 che supporta il protocollo proxy e quindi aggiungere l'indirizzo IP del protocollo proxy nell'intestazione X-Forwarded-For all'app Play. Le istruzioni su come configurare nginx per supportare il protocollo di proxy in questo modo si possono trovare qui:

https://chrislea.com/2014/03/20/using-proxy-protocol-nginx/

+0

Esiste un ETA sull'aggiunta del supporto del protocollo proxy come funzionalità in Play? È qualcosa che può essere fatto all'interno di Play stesso o richiede modifiche in una libreria esterna? Grazie. –

+1

La riproduzione è basata su Netty e Netty ha un handle di protocollo proxy che può essere aggiunto. Potrebbe essere fornito come opzione di configurazione. Non ci sono piani per implementarlo, se dovesse accadere sarà una richiesta di pull dalla comunità. Inoltre, Play 3 si sta spostando su akka-http (aka spray), che non ha il supporto del protocollo proxy. La richiesta di funzionalità è disponibile qui: https://github.com/spray/spray/issues/846 –

0

È possibile recuperare qualsiasi intestazione HTTP dalla richiesta. Se le informazioni del proxy sono disponibili in un'intestazione HTTP (non ho familiarità con Amazon ELB e quale intestazione HTTP utilizza, ma suppongo che utilizzerebbe un'intestazione HTTP di tipo), potresti analizzarla tu stesso, in questo modo:

+0

X-Forwarded-For non è disponibile se il protocollo TCP bilanciamento del carico viene utilizzato – tokarev

+0

Destra, ho letto troppo veloce. Ottieni effettivamente qualsiasi tipo di intestazione HTTP con l'intestazione proxy codificata? Sembra che una volta che hai l'intestazione puoi analizzarlo da solo –

+0

ELB antepone un'intestazione ai dati TCP. Quindi la vera domanda è come recuperarla. – tokarev

Problemi correlati