LINUX.ORG.RU

Как переконектить HTTP/HTTP2 клиент на другой сервер?

 , , , ,


0

1

Скажем хочу написать load-balancer на java перед http(2)-server. И где-то слышал, что есть возможность веб-браузер подключить напрямую к определенному http(2)-server, минуя load-balancer посредника.

Т.е. веб-браузер конектится на load-balancer, который с помощью определенной магии сообщает клиенту, что вот тебе новый IP - стучись туда и тебе прибудет http-responce и вообще можешь теперь напрямую с ним работать, а не со мной запрашивая domain-name, к которому изначально привязан load-balancer. И теперь текущий http-request на domain-name и все последующие идут уже на другой IP, который слушает определенный http(2)-server.

Как реализовать такую магию, видимо есть какие-то http-header'ы, по каким ключевикам искать ответ?

★★★★★

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

Если правильно понял, то тебе нужен HTTP код 301. Браузер клиента будет запоминать адрес перенаправления, и в будущем сразу идти туда.

shooter93 ★★
()
Последнее исправление: shooter93 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Куда туда? на node1.domain.com?

Куда пошлет его редирект, туда и пойдет? Не понял вопроса.

Причем навечно?

На сколько я знаю в стандарте это не указано, надо смотреть как долго браузеры это кешировать будут

shooter93 ★★
()
Последнее исправление: shooter93 (всего исправлений: 1)
Ответ на: комментарий от shooter93

Куда пошлет его редирект, туда и пойдет? Не понял вопроса.

ТС хочет чтоб в адресной строке оставался один домен, и еще куки есть, если не забыл.

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

На сколько я знаю в стандарте это не указано, надо смотреть как долго браузеры это кешировать будут

Да хоть даже и на сутки, все равно пукан у поддержки разорвется при проблемах с нодой.

anonymous
()

Есть такие варианты:

1. Настроить DNS, чтобы он разные IP-адресы возвращал.

2. Настроить Reverse-proxy, т.е. все ходят на один IP-адрес, а там стоит какой-нибудь nginx, который сам делает запрос на нужный сервер и возвращает ответ исходному клиенту.

3. Сделать сайт как SPA: с исходного сервера грузятся только статические ресурсы (да и их можно отдавать с правильными заголовками, чтобы браузер их кешировал), а JavaScript уже сам решает, куда потом делать запросы и всю работу с сетью инкапсулирует в себе.

4. Сделать iframe на исходном сервере, который в себе будет грузить страницу с другого сервера.

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

Нет, нужен http-header, в котором браузеру будет сказано - теперь стучись по новому IP для данного домена, пока тебе не будет сказано обратное. Проверить dns привязку можешь по этому адресу или днс-сервер может сразу пул IP-ов кинуть браузеру, на каких IP-ах данный домен валиден.

Почему нет такой реализации до сих пор, что за херня, за что налоги платим и по рекламе гугла смотрим/кликаем? Куда w3c смотрит?

foror ★★★★★
() автор топика
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

теперь стучись по новому IP для данного домена

Это вам к DNS балансировке, батенька. Всё уже есть. Есть такая услуга у Amazon Route S5, вроде, так называется. Там умный DNS и всё такое, ещё можно поискать на гитхабе DNS сервера на Go, вроде там есть один проект под такое дело.

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

Что толку, если браузерам и промежуточным провайдерам как-то пофиг на эти кастомные DNS серверы? Они закешируют IP-ик по только им ведомым правилам и привет.

Такие вещи удобны для всяких яндексов с гуглами, но не для ситуаций, когда резко возросла нагрузка и с этим нужно что-то быстро делать, а не ждать пока там все DNS-ы за 24 часа перекешируются.

foror ★★★★★
() автор топика
Последнее исправление: foror (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.