Welcome! Log In Create A New Profile

Advanced

Smart load balancing

Daniel Podolsky
January 20, 2010 08:38AM
День добрый!

Изобретаю схему для лоадбалансинга пары бекендов. Бекенды не
масштабируются, так что прийдется изобретать хитромудрое...

Идея такая:

1. Получаем запрос от клиента
2. Проверяем наличие и валидность некоей куки. Кука содержит в себе
имя бекенда, собственный экспайр и md5 для проверки валидности.
Проверять хорошо бы прямо в nginx, но можно и сходить куда-нибудь.
Например - на третий бекенд, который распределением занимается.
3. Усли кука отсутствует/невалидна - переходим к пункту 7.
5. Раз уж кука валидна - проксируем запрос на соответствующий бекенд.
6. К ответу бекенда добавляем свою куку - с обновленным экспайром - и
отдаем его клиенту.
Куку хочется посчитать прямо в nginx.
7. Проверяем годность запроса - должен быть post с определенным параметром.
Это если проверить можно прямо в nginx.
Если надо ходить на сторону - там же на стороне будут проделаны и пункты 8 и 9.
8. Если запрос негодный - вырезаем из него аутентификационную куку и
проксируем на любой из бекендов, чтобы отдать клиенту форму логина.
Проверить годность запроса хочется прямо на nginx.
9. Если параметр есть - ищем ему соответствие в таблице.
Хочется при поиске использовать регулярные выражения. Результатом
поиска станет имя бекенда, или ничто.
Искать хочется прямо в nginx, таблица там недлинная, можно и
заблокироваться. Но можно и сходить на сторону.
10. если соответствие нашлось - переходим к пункту 5.
11. Раз соответствия нет - выдаем статическую страницу с ошибкой и
просьбой обратиться к администратору.

Вопросы:
1. Можно ли это реализовать? Я не очень пока понимаю - что можно
сделать стандартными средствами, что - с использованием перла. А,
может, что-то нельзя вообще. Вот пункт 8 - можно? А 2?
2. Поделитесь, пожалуйста, примерами конфигов, ну или ссылками на
соответствующие разделы документации.

Спасибо.

С уважением,
Даниил Подольский.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Smart load balancing

Daniel Podolsky January 20, 2010 08:38AM

Re: Smart load balancing

Andrey Zloy January 20, 2010 11:00AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 42
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready