LVS+HAProxy的一種方式

去年看見淘寶章博士的PPT裏面講過淘寶的CDN架構,以爲簡單使用。




我也一直以爲haproxy比較簡潔的,另外畫了一個圖,能夠給應用作好負載均衡。不過我這個圖裏兩個LVS只是一主一倍,也能夠做爲相互備份,這樣更能提升利用率。




這個基本是照着淘寶的這個架構搞的。可是其實裏面有些細節地方能夠仔細說一下。這個實現過程是
最最外面作LVS的機器上綁定一堆公網的IP。假如是10.10.114.2 .....10.10.114.254 (這個只是做爲解說)。
作LVS負載均衡的機器上另一個網卡綁定一個內部的IP,假如分別爲192.168.1.2和192.168.1.3.
後端

  1. virtual_server 10.10.114.2 80 {服務器

  2. delay_loop 3架構

  3. lb_algo wlc負載均衡

  4. lb_kind DRfrontend

  5. nat_mask 255.255.255.0tcp

  6. persistence_timeout 50oop

  7. protocol TCPspa

  8. real_server 192.168.1.4 80 {.net

  9. weight 100unix

  10. TCP_CHECK {

  11. connect_port 80

  12. connect_timeout 3

  13. nb_get_retry 3

  14. delay_before_retry 10

  15. }

  16. }

  17. real_server 192.168.1.5 80 {

  18. weight 100

  19. TCP_CHECK {

  20. connect_port 80

  21. connect_timeout 3

  22. nb_get_retry 3

  23. delay_before_retry 10

  24. }



  1. }


  1. virtual_server 10.10.114.3 80 {

  2. delay_loop 3

  3. lb_algo wlc

  4. lb_kind DR

  5. nat_mask 255.255.255.0

  6. persistence_timeout 50

  7. protocol TCP

  8. real_server 192.168.1.4 80 {

  9. weight 100

  10. TCP_CHECK {

  11. connect_port 80

  12. connect_timeout 3

  13. nb_get_retry 3

  14. delay_before_retry 10

  15. }

  16. }

  17. real_server 192.168.1.5 80 {

  18. weight 100

  19. TCP_CHECK {

  20. connect_port 80

  21. connect_timeout 3

  22. nb_get_retry 3

  23. delay_before_retry 10

  24. }



  1. }



那麼配置 haproxy的幾個機器上每一個機器有一個192.168.1.X的IP外,還須要在每一個機器的迴環地址上綁定全部VIP(10.10.114.x)的。這樣能夠直接使用DR模式來對haproxy作第一級的負載均衡,並且對於安裝haproxy的服務器上,由於在迴環地址上綁定了這麼多的ip(設置好arp抑制後其實只有這些機器本身知道本身有這些VIP),因此在配置haproxy時也很是方便了。
當外部請求進來時,LVS把請求轉發給Haproxy。因爲haproxy上監聽的是綁在lo上的VIP,因此能夠根據對方的目標IP來選擇後端的機器。



  1. frontend  server1

  2.          mode tcp

  3.          bind 10.10.114.2:80

  4.          default_backend real_server1


  5. backend real_server1

  6.         mode tcp

  7.         balance roundrobin

  8.         server A 192.168.x.2:80 weight 1

  9.         server B 192.168.x.3:80 weight 1

  10.     frontend  server2
                 mode http
                 bind 10.10.114.3:80
                 default_backend real_server2
        backend real_server2
                mode http
                balance roundrobin
                server A 192.168.x.4:80 weight 1
                server B 192.168.x.5:80 weight 1

  11.     frontend  server3
                 mode http
                 bind 10.10.114.4:80
                 default_backend real_server3
        backend real_server3
                mode http
                balance roundrobin
                server A 192.168.x.6:80 weight 1
                server B 192.168.x.7:80 weight 1

這樣的話全部的haproxy均可以同時工做,lvs對他們也能夠作好健康檢測。對於後端應用,咱們也能夠充分利用haproxy來作好健康檢測。

相關文章
相關標籤/搜索