HAProxy編譯安裝


 HAProxy簡介

(1)HAProxy 是一款提供高可用性、負載均衡以及基於TCP(第四層)和HTTP(第七層)應用的代理軟件,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。 HAProxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。HAProxy運行在時下的硬件上,完全可以支持數以萬計的 並發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。

(2)HAProxy 實現了一種事件驅動、單一進程模型,此模型支持非常大的並發連接數。多進程或多線程模型受內存限制 、系統調度器限制以及無處不在的鎖限制,很少能處理數千並發連接。事件驅動模型因為在有更好的資源和時間管理的用戶端(User-Space) 實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程序通常擴展性較差。這就是為什么他們必須進行優化以 使每個CPU時間片(Cycle)做更多的工作。

(3)HAProxy 支持連接拒絕 : 因為維護一個連接的打開的開銷是很低的,有時我們很需要限制攻擊蠕蟲(attack bots),也就是說限制它們的連接打開從而限制它們的危害。 這個已經為一個陷於小型DDoS攻擊的網站開發了而且已經拯救

了很多站點,這個優點也是其它負載均衡器沒有的。

(4)HAProxy 支持全透明代理(已具備硬件防火牆的典型特點): 可以用客戶端IP地址或者任何其他地址來連接后端服務器. 這個特性僅在Linux 2.4/2.6內核打了cttproxy補丁后才可以使用. 這個特性也使得為某特殊服務器處理部分流量同時又不修改服務器的地址成為可能。

 

haproxy-1.7.11.tar.gz 放置並解壓到/data下,重命名為haproxy
tar -zxvf haproxy-1.7.11.tar.gz 
mv haproxy-1.7.11 haproxy
[root@yaoyao data]# ls
haproxy  haproxy-1.7.11.tar.gz
[root@yaoyao data]# uname -a
Linux yaoyao 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

 

cd /data/haproxy

[root@yaoyao data]# make TARGET=linux2632 ARCH=x86_64 PREFIX=/data/haproxy

TARGET=linux2632 、ARCH=x86_64 可以用uname -a 命令來查看,指定操作系統版本,prefix指定安裝目錄;

 常見編譯報錯:

makegcc: error trying to exec 'cc1': execvp: 沒有該文件或目錄的錯誤

排查錯誤:

 1、檢查gcc、gcc-c++是否安裝rpm -qa gcc、rpm -qa gcc-c++(已安裝);

 2、檢查glibc-devel、cpp、binutils、mpfr、jemalloc是否安裝(未安裝);

解決:

   發現gcc的相關依賴包未安裝,安裝完后,可執行make編譯
[root@yaoyao haproxy]# make install PREFIX=/data/haproxy
install -d "/data/haproxy/sbin"
install haproxy  "/data/haproxy/sbin"
install -d "/data/haproxy/share/man"/man1
install -m 644 doc/haproxy.1 "/data/haproxy/share/man"/man1
install -d "/data/haproxy/doc/haproxy"
for x in 51Degrees-device-detection architecture close-options configuration cookie-options DeviceAtlas-device-detection intro linux-syn-cookies lua management netscaler-client-ip-insertion-protocol network-namespaces proxy-protocol SPOE WURFL-device-detection; do \
                install -m 644 doc/$x.txt "/data/haproxy/doc/haproxy" ; \
        done

 創建haproxy配置文件

[root@yaoyao haproxy]# pwd
/data/haproxy
[root@yaoyao haproxy]# ls
CHANGELOG  CONTRIBUTING  ebtree    haproxy      include  MAINTAINERS  README   sbin     share  SUBVERS  VERDATE
contrib    doc           examples  haproxy.cfg  LICENSE  Makefile     ROADMAP  scripts  src    tests    VERSION
[root@yaoyao haproxy]# cat haproxy.cfg 
global
        log 127.0.0.1 local0
        log 127.0.0.1 local1 notice
        daemon
        nbproc 1
        maxconn 4096
defaults
        log global
        mode http
        option httplog
        option dontlognull
        retries 3
        option httpclose
        option redispatch
        option abortonclose
        maxconn 4096
        timeout connect 5000ms
        timeout client 30000ms
        timeout server 180000ms
        balance roundrobin
listen stats
        bind 0.0.0.0:1080
        mode http
        option httplog
        maxconn 10
        stats refresh 30s
        stats uri /stats
        stats realm XingCloud\ Haproxy
        stats auth admin:admin
        stats auth Frank:Frank
        stats hide-version
        stats admin if TRUE
frontend web
        bind *:8080  
        default_backend webserver1
frontend main
        bind *:9000
        default_backend webserver2
backend webserver1
        balance source
        server web1 10.0.90.234:8080 check
        server web2 10.0.90.235:8080 check
backend webserver2
        balance source
        server web1 10.0.90.234:9000 check
        server web2 10.0.90.235:9000 check

 啟動haproxy服務

[root@yaoyao haproxy]# sbin/haproxy -f haproxy.cfg

 查看haproxy服務

[root@yaoyao haproxy]# netstat -ntlp |grep haproxy
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      43495/sbin/haproxy  
tcp        0      0 0.0.0.0:1080                0.0.0.0:*                   LISTEN      43495/sbin/haproxy  
tcp        0      0 0.0.0.0:9000                0.0.0.0:*                   LISTEN      43495/sbin/haproxy

 看到以上信息說明haproxy服務已經成功了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM