Abbiamo un web server Java, che è in grado di servire contenuti su H2C (HTTP/2 chiaro testo)Reverse il proxy HTTP/2 da H2 a H2C
Vorremmo invertire le connessioni proxy stabiliti secondo h2 (vale a dire di serie HTTP/2 su SSL) al server java in h2c.
Abilitare HTTP/2 su nginx è abbastanza semplice e gestire le connessioni h2 in arrivo funziona correttamente.
Come si comunica a nginx il proxy della connessione utilizzando h2c anziché http/1.1?
Nota: una soluzione non nginx può essere accettabile
server {
listen 443 ssl http2 default_server;
server_name localhost;
ssl_certificate /opt/nginx/certificates/???.pem;
ssl_certificate_key /opt/nginx/certificates/???.pk8.key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location/{
proxy_pass http://localhost:8080/; ## <---- h2c here rather than http/1.1
}
}
CONCLUSIONI (giugno 2016)
Questo può essere fatto con haproxy utilizzando un file di configurazione semplice come quello sottostante.
Interrogazione (HttpServletRequest)
req.getProtocol()
restituisce chiaramente HTTP/2.0
global
tune.ssl.default-dh-param 1024
defaults
timeout connect 10000ms
timeout client 60000ms
timeout server 60000ms
frontend fe_http
mode http
bind *:80
# Redirect to https
redirect scheme https code 301
frontend fe_https
mode tcp
bind *:443 ssl no-sslv3 crt mydomain.pem ciphers TLSv1.2 alpn h2,http/1.1
default_backend be_http
backend be_http
mode tcp
server domain 127.0.0.1:8080
Immagino che nginx non lo sostenga. http://nginx.org/r/proxy_http_version –
@AlexeyTen spero che succeda presto .. Sono andato con haproxy nel frattempo –
vorrei interrogare il valore in questo. Il vantaggio principale di HTTP/2 è per le connessioni client-server ad alta latenza e meno per, presumibilmente, connessioni server-server a bassa latenza. HTTP/2 sarà il futuro per la maggior parte delle connessioni (comprese eventualmente quelle server-server), ma la mancanza di supporto al momento ci dice quanto sia nuovo questo e quindi se sia saggio passare a quello appena basato su limitati lati negativi . Solo la mia opinione - e io sono un grande fan di HTTP/2 per i clienti, quindi non sto cercando di sottovalutare i benefici lì. –