天天看點

haproxy

四層轉發tcp(lvs)七層代理http(haproxy)

穩定性的适合用lvs  網站負載适合用haproxy nginx

haproxy(單核):

HAProxy 提供高可用性、負載均衡以及基于 TCP 和 HTTP 應用的代理,支援虛拟主機,

它是免費、快速并且可靠的一種解決方案。HAProxy 特别适用于那些負載特大的 web 站點, 這些站點通常又需要會話保持或七層處理。HAProxy 運作在目前的硬體上,完全可以支援數以萬計的并發連接配接。并且它的運作模式使得它可以很簡單安全的整合進您目前的架構中, 同時可以保護你的 web 伺服器不被暴露到網絡上。

三台虛拟機:

虛拟機3排程器:

yum install haproxy -y (建議用rpm包裝)

haproxy

cd /etc/haproxy/

vim haproxy.cfg

監控頁面添加認證:

listen admin *:8080

       stats enable

       stats uri /status  # 監控頁面位址

       stats authadmin:westos  # 管理帳号和密碼

       stats refresh 5s  #重新整理頻率

listen  westos *:80      #監聽的執行個體名稱,位址和端口

        balance roundrobin   #負載均衡算法

        server web1172.25.42.13:80 check

        server web2 172.25.42.14:80 check

haproxy
haproxy
haproxy
haproxy

兩台real server

/etc/init.d/httpd start

日志監控:

$ModLoad imudp     #接受 haproxy 日志

$UDPServerRun 514

vim /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none;local2.none     /var/log/messages

local2.*                 /var/log/haproxy.log   #日志檔案位置

haproxy

自帶健康檢查:(測試)

haproxy
haproxy

動态靜态通路分離:(可以自己加虛拟主機)

frontend  westos *:80

    acl url_static path_beg       -i /p_w_picpaths

    acl url_static path_end   -i .jpg .gif .png

    use_backend static          if url_static

    default_backend  app (預設通路app)

backend static (靜态)

        balance roundrobin

backend app

        server web1 172.25.42.13:80 check

haproxy
haproxy
haproxy
haproxy

錯誤重定向:

 acl url_static    path_beg       -i /p_w_picpaths  (以什麼開頭 預設根目錄)

 acl url_static path_end      -i .jpg .gif .png (以什麼結尾)

    acl badhost  src 172.25.42.250  (設定誰不能通路我)

    block if badhost

    errorloc 403 http://172.25.42.12:8000(注意端口不要沖突)(403:伺服器拒絕你的通路 伺服器設定你是壞的 )(如果是403錯誤就重定向到 172.25.254.12:8000)

    redirect location http://172.25.42.12:8000 ifbadhost (如果出現錯誤通路 就重定向 不管是什麼錯誤)

haproxy

     use_backend static          if url_static

     default_backend  app

backend static

haproxy

        server local 172.25.42.12:8000backup

(如果後端realserver down掉 則排程報錯頁面 但是正常情況下不會通路 因為 是“backup”)

haproxy
haproxy
haproxy

301永久重定向:(一般推薦用301  302臨時重定向 有惡意刷點選的嫌疑)

    aclwestos.org hdr_beg(host) -i westos.org 

    acl 172.25.42.12 hdr_beg(host) -i172.25.42.12

#    block if badhost

#    errorloc 403http://172.25.42.12:8000

#    redirect locationhttp://172.25.42.12:8000 if badhost

     redirect code 301 locationhttp://www.westos.org if westos.org

     (以westos.org通路自動重定向 www.westos.org)

     redirect code 301 locationhttp://www.westos.org if 172.25.42.12

     (以172.25.42.12通路自動重定向 www.westos.org)

haproxy

讀寫分離:

real server(兩台): yum install php -y

php頁面:

chmod 777 upload (預設上傳目錄一定要給權限)

haproxy

排程機器:

    acl read method GET     

    acl read method HEAD     //兩個read write 隻用一個就行

    acl write method PUT

    acl write method POST

     use_backend app         if write 

     default_backend  static (預設靜态頁面 為了測試 剛開始 www.westos.org 時是172.25.42.14 而寫(上傳時 卻是在172.25.254.13 上進行的)做到了讀寫分離)

        server web1 172.25.42.13:80 check(預設會上傳到這個real server)

        server local 172.25.42.12:8000backup

注意: /etc/init.d/haporxy reload   real server:/etc/init.d/httpd restart

haproxy
haproxy
haproxy

繼續閱讀