LINUX.ORG.RU

Проксирование HTTP/2 в Backend

 , , , ,


0

1

Можно ли проксировать HTTP/2 запросы через какой-нибудь веб-сервер в бэкенд?

Т.е. пользователь обращается к ресурсу, веб-сервер получает HTTP/2 запрос и передает его уже в бэкенд, в котором этот запрос обрабатывается.

И как в целом такая схема работает?

Client <-> Web Server <-> Backend

Данные от Client к Web Server шифруются с помощью TLS. Т.к. Web Server проксирует запрос, то он просто должен передать зашифрованный пакет в Backend? Или Web Server его расшифрует и передаст Backend-у расшифрованный HTTP/2 пакет?

И какой из веб-серверов умеет проксировать HTTP/2? Я поискал информацию по Nginx-у и походу он не умеет проксировать HTTP/2

Инфа тут:

http://serverfault.com/questions/765258/use-http-2-0-between-nginx-reverse-pr...

http://stackoverflow.com/questions/41637076/http2-with-node-js-behind-nginx-p...

По идее хотелось бы схему вроде этой:

Client <- HTTP/2 -> Nginx <- UNIX Socket -> Backend

Т.е. клиент обращается к серверу Nginx по HTTP/2, Nginx проксирует HTTP/2 пакет через UNIX Socket Backend-у, где уже обрабатывается пакет и отсылается ответ пользователю...

Заранее благодарю за ответы.

Перемещено leave из general

А ссылки, которые вы привели, о том, что nginx не умеет работать вот так:

Nginx <- HTTP/2 -> Backend

А с этой частью все нормально уже года два:

Client <- HTTP/2 -> Nginx

l0stparadise ★★★★★ ()

Я не увидел где у тебя собственно reverse proxy в схеме. unix socket означает, что у тебя application среда на том же сервере, что и сам nginx. Или ты там socat или чем-то другим извращаешься?

anonymous_sama ★★★★★ ()
Ответ на: комментарий от Sorcus

Я не понял, что ты хочешь этим добиться и зачем тебе это надо, но haproxy это умеет. Кстати, сегодня кто-то в nginx-devel спрашивал про HTTP/2 upstream support, причем так и не ответил зачем это ему надо.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Любопытство наверное. Можно ли такое реализовать без лишнего гемороя.

1. Берем быстрый Nginx

2. Используем для общения с бэкендом быстрые unix сокеты

3. Используем HTTP/2 для общения с клиентом

3. ...

4. PROFIT!

Как-то так :-D

Sorcus ()
Ответ на: комментарий от Sorcus

С точки зрения проксирующего веб-сервера это одно и то же (два соединения, одно клиента с nginx, второе nginx с бэкэндом). Nginx может принимать входящие http2 соединения, но не умеет открывать исходящие. Пинайте haproxy, из известных, емнип, такое умеет только он, ссылку дали выше.

l0stparadise ★★★★★ ()
Последнее исправление: l0stparadise (всего исправлений: 1)