2016-06-15 13 views
5

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 
+2

Domyślam się, że nginx tego nie obsługuje. http://nginx.org/r/proxy_http_version –

+0

@AlexeyTen mam nadzieję, że to wkrótce .. Poszedł z haproxy w międzyczasie –

+0

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. –

Odpowiedz

2

HAProxy nie obsługuje tego.

HAProxy może odciążyć TLS i przekazać do backendu, który mówi h2c.

Szczegółowe informacje na temat konfiguracji tej konfiguracji są dostępne pod numerem this blog post.

+0

Dzięki. Próbuj teraz. Będę raportować wyniki z powrotem –

+0

@BrunoGrieder, z ciekawości, jaki jest serwer zaplecza, który mówi 'h2c'? – sbordet

+0

Używamy wbudowanego wrzutnika 9.3.9 –