mamy java serwer WWW, który jest w stanie obsłużyć zawartości nad H2C (HTTP/2 czystego tekstu)Rewers buforowania HTTP/2 od h2 do H2C
Chcielibyśmy odwrócić połączeń proxy ustalić stosując H2 (czyli norma HTTP/2 przez SSL) do serwera java w h2c.
Włączenie HTTP/2 na nginx jest dość proste i obsługa przychodzących połączeń h2 działa dobrze.
W jaki sposób możemy poinformować nginx, aby pośredniczył w połączeniu za pomocą h2c zamiast http/1.1?
Uwaga: Roztwór nie nginx są dopuszczalne
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
}
}
PODSUMOWANIE (czerwiec 2016)
Może to być wykonane z HAProxy pomocą pliku konfiguracyjnego tak prosto jak poniżej.
Zapytania (HttpServletRequest)
req.getProtocol()
wyraźnie zwraca 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
Domyślam się, że nginx tego nie obsługuje. http://nginx.org/r/proxy_http_version –
@AlexeyTen mam nadzieję, że to wkrótce .. Poszedł z haproxy w międzyczasie –
Zapytałbym o wartość w tym. Główną zaletą protokołu HTTP/2 jest wysoki czas oczekiwania na połączenia między klientem a serwerem, a w mniejszym stopniu - prawdopodobnie niskie opóźnienia połączeń serwer-serwer. Protokół HTTP/2 będzie przyszłością większości połączeń (w tym serwerów z serwerami), ale obecnie brak wsparcia mówi, jak nowy to jest, a zatem czy rozsądnie jest przejść do tego, ale w oparciu o ograniczone usprawnienia . Tylko moja opinia - i jestem ogromnym fanem HTTP/2 dla klientów, więc nie próbuję pomijać tamtejszych korzyści. –