load balancer 之 proxy

今天一直在弄用apache來做web的負載均衡器,出現些問題如下:

    當web是基於http的時候,所有的正常。但是是現在的web是基於ssl的應用就出問題了,後面幾臺的web server 的證書都不一樣,apache 作爲ssl 的反向代理的時候,只能使用一個證書!!!

    apache的ssl 代理是從後面的server 到前面的client 之前又有兩層ssl加密,嚴重的影響了效率。


想了好久,主要覺得原因還是apache的代理在iso的七層,雖然帶來了好多有靈活性。但同時也帶來了其他問題。就算後來用了nginx,但第二個多證書的透時問題還是存在。所以還是決定用那些可以支持4層的負載均衡(F5)的設備和軟件(HAPROXY)。


由於haproxy是開源的產品,支持4層和7層的負載設置,所以是第一選擇。


安裝方法:


tar zxvf haproxy-1.4.13.tar.gz

make TARGET=linux26 PREFIX=/usr/local/haproxy  ##我的系統內核爲2.6,所以target=linux26

make install PREFIX=/usr/local/haproxy

然後進行配置:

vi /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #chroot /usr/share/haproxy            #chroot的執行環境,如果不存在此路徑就會報錯
        chroot /usr/local/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
        balance  roundrobin
        #haproxy web 管理界面
        stats   enable
        stats uri   /haproxy-stats        #通過  就可以訪問 
        stats auth  hxadmin:123456

# proxy status check , not in need , 例如對兩部主機進行監控的實例
listen web_proxy 10.86.3.180:80
        mode http                        #使用7層模式,
        option httpchk GET /index.htm    #用於健康檢測的後端頁面
#  #後端的主機 IP &權衡, ser201 自己定義 
        server ser201  10.86.2.201:80 weight 3 check    
        server ser202  10.86.2.202:81 weight 3 check

#實際用來負載的設備,運行的端口及主機名       
listen  ssl-relay 10.86.3.180:443

        mode    tcp            #使用4層模式
        balance roundrobin
        server  fpg201 10.86.2.201:443 check inter 2000 fall 3
        server  ins202 10.86.2.202:443 check inter 2000 fall 3
        server  back1  10.86.2.203:443 backup                #用作備份的主機


這個文檔的所有例子都可以在 /haproxy-1.xxx/examples目錄下找到,包到 haproxy.init 的啓到腳本。

    所以只需要: #mv examples/haproxy.init /etc/init.d/haproxy

                #chmod a+x /etc/init.d/haproxy

                #chkcofig --add haproxy

                #service haproxy start 

     就可以成功創建haproxy的腳本,並且入系統自啓到的services中,啓動haproxy 服務。


注:如果啓動過程出現/usr/sbin/haporxy not found 的相關提示,只要找到當前的haproxy所在位置,cp到/usr/sbin下就可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章