2016-03-25 49 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策略工作。

但是,當我用這個IP打開3個或更多頁面時,我收到了奇怪的情況。我認爲haProxy應該將流量重定向到我的Flask實例之一,但是當我在瀏覽器中第一次打開這個IP時,我等待響應(在Flask中休眠)並打開第二頁,第二頁將在第一次加載時加載+ 5秒(time.sleep)。第三頁是相似的 - 它將在第二次加載+ 5秒時加載。

我認爲這是無效的,因爲當haProxy將流量從一個請求重定向到Flask的一個實例並將第二個請求重定向到第二個實例 - 這個請求應該彼此分離..我應該從5第二。不在5,10,15,20 ..

有人可以幫我嗎?

此致敬禮, 馬特。

+0

你有沒有看着[這一個](http://serverfault.com/questions/580142/haproxy-tcp-roundrobin-loadbalancing-not-working-如預期的)? – Hang

+0

@Hang我已經改變策略爲leastconn,但它仍然沒有按預期工作 – user3025978

+0

我認爲haProxy正在等待上次請求的響應..但它不好.. – user3025978

回答