Welcome! Log In Create A New Profile

Advanced

Re: Smart load balancing

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

Можно. Для выбора бэкэнда можно истользовать алгоритм от мемкеша.
Требует установленного модуля перла String::CRC32 (не помню есть ли он
по дефолту)

http {
...
perl_set $serv_index 'sub {
use String::CRC32;
use nginx;
my $r = shift;
$r =~ /super_cookie=([^;]+?)/;
my $my_cookie = $1;
my $serv_index = (((crc32($my_cookie) >> 16) & 0x7fff) % 2); #
где 2 это кол-во бэкэндов

return $serv_index;
}';
....
}

server {
..
set $serv_index = $http_cookie;
if ($serv_index = 0){
proxy_pass 127.0.0.1;
}
if ($serv_index = 1){
proxy_pass 192.168.0.29;
}
...
}

Аналогично можно сделать проверку на экспайр и md5 для валидности.
_______________________________________________
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: 306
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready