LINUX.ORG.RU
решено ФорумAdmin

Nginx proxy конкретного клиента (ip) на конкретный сервер

 ,


0

2

Друзья, собственно сабж. Есть много клиентов, которые конектятся на сервер получая там айпишник локальные, типа: 15.0.0.1 и т.д. дальше запросы прокисруются на другой сервер. Если брать всех клиентов и проксировать на 1 сервер всё работает. Сейчас нужно разделить клиентов по IP (которые известны) и отправлять на разные сервера. Для понимаю см. картинку: https://ibb.co/gth8JT Вопрос, как привязать конкретный айпишник для проксирования на конкретный сервер?



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

Не представляешь, сколько я это уже читал и смотрел. Конкретно этот вариант не понимаю как будет работать, если мне нужно например клиента 15.0.0.1 который всегда работал на backend01 перенаправить на backend03?

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

если мне нужно например клиента 15.0.0.1 который всегда работал на backend01 перенаправить на backend03?

тебе нужно по списку клиент ip перенаправлять на заранее оговоренные сервера ? lua тебе в помощь ( https://github.com/openresty/lua-nginx-module ) - там можешь задавать нужные тебе условия.

а вообще почитай подробнее:

http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#hash

P.S.: хотя это бред ip_hash достаточно - проще переозначить структуру так чтобы твои условия попадали под действия ip_hash

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

Всё что касается раздела upstream и server понятно. Как описать location в данном случае и сколько их (location'ов) должно быть. Был бы какой нибудь кусочек с примером....

forzasakh
() автор топика

Плюсую map, тут показан похожий пример посложнее

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

map как раз таки подошёл, сразу с первого раза всё поднялось так как надо. ip_hash не пробовал, но предполагаю что так же, как map, не разработало бы...

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

Только если бэкенд сервер умрет, все его клиенты получат ошибку. Можно заменить ip-адреса бекэндов на upsteam'ы, в которых вписать backup-сервера, если нужно.

Deleted
()
6 февраля 2019 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.