2016-03-25 3 views
0

Я пытаюсь упростить балансировку нагрузки с помощью haProxy. Моя конфигурация:HaProxy не балансирующий трафик

global 
log /dev/log local0 
log 127.0.0.1 local1 notice 
maxconn 200000 
user haproxy 
group haproxy 
daemon 

defaults 
    log  global 
    mode http 
    option httplog 
    option dontlognull 
    retries 3 
    option redispatch 
    maxconn 200000 
    timeout connect  5000 
    timeout client  50000 
    timeout server  50000 
frontend front 
    bind *:80 
    mode http 
    default_backend back 

backend back 
    mode http 
    balance roundrobin 
    option httpclose 
    option forwardfor 
    server webserver01 127.0.0.1:5001 check 
    server webserver02 127.0.0.1:5002 check 
    server webserver03 127.0.0.1:5003 check 
    server webserver04 127.0.0.1:5004 check 
    server webserver05 127.0.0.1:5005 check 
    server webserver06 127.0.0.1:5006 check 

listen sts *:1936 
    mode http 
    stats enable 
    stats uri/

И у меня есть шесть экземпляров Flask, каждый на другом порту в соответствии с конфигурацией.

В функции Кол-во есть только time.sleep (5) и возврат.

Когда я открываю haproxy IP в браузере - он работает - у меня есть стратегия roundrobin, работающая.

Но когда я открываю 3 или более страниц с этим IP-адресом, я получил странную ситуацию. Я думаю, что haProxy должен перенаправить трафик на один из моих экземпляров Flask, но когда я открываю первый раз этот IP-адрес в браузере, и я жду ответа (sleep in Flask) и откройте вторую страницу, вторая страница будет загружена при первой загрузке + 5 секунд (time.sleep). И третья страница похожа - она ​​будет загружена при загрузке второй секунды + 5 секунд.

Я думаю, что это неверно, когда haProxy перенаправляет трафик с одного запроса на один экземпляр Flask и второй запрос на второй экземпляр - эти запросы должны быть отделены друг от друга. У меня должен быть ответ от каждого запроса в 5 второй. Не в 5, 10, 15, 20 ..

Может ли кто-нибудь помочь мне с этим?

С уважением, Matt.

+0

Вы смотрели в [этот] (http://serverfault.com/questions/580142/haproxy-tcp-roundrobin-loadbalancing-not-working- как и ожидалось)? – Hang

+0

@Hang Я изменил стратегию на lessconn, но он все еще не работает как ожидалось – user3025978

+0

Я думаю, что haProxy ждет ответа от последнего запроса .. Но это не хорошо .. – user3025978

ответ

2

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

Более подробную информацию можно найти в этом вопросе: Max parallel http connections in a browser?

Смежные вопросы