Haproxy負載均衡,讀寫及動靜分離
HAProxy 提供高可用性、負載均衡以及基於 TCP 和 HTTP 應用的代理,支援虛擬主機,它是免費、快速並且可靠的一種解決方案。HAProxy 特別適用於那些負載特大的 web 站點, 這些站點通常又需要會話保持或七層處理。HAProxy 執行在當前的硬體上,完全可以支援數以萬計的併發連線。並且它的執行模式使得它可以很簡單安全的整 合進您當前的架構中, 同時可以保護你的 web 伺服器不被暴露到網路上。
一.配置
1.製作rpm包:
tar zxf haproxy-1.6.11.tar.gz //解壓tar包,獲取配置檔案模板
yum install rpm-build
rpmbuild -tb haproxy-1.6.11.tar.gz //編譯 rpm -ivh /root/rpmbuild/RPMS/x86_64/haproxy-1.6.11-1.x86_64.rpm rpm -qpl rpmbuild/RPMS/x86_64/haproxy-1.6.11-1.x86_64.rpm
編輯 /etc/haproxy/haproxy.cfg
global log 127.0.0.1 local0 #指定日誌裝置 #log 127.0.0.1 local1 notice log loghost local0 info #指定日誌型別,還有 err warning debug maxconn 65535 #併發最大連線數量 chroot /usr/share/haproxy #jail 目錄 uid 99 #使用者 gid 99 #組 daemon #後臺執行 #debug #quiet defaults log global mode http #預設使用 http 的 7 層模式 tcp: 4 層 option httplog #http 日誌格式 option dontlognull #禁用空連結日誌 retries 3 #重試 3 次失敗認為伺服器不可用 option redispatch #當 client 連線到掛掉的機器時,重新分配到健康的主機 maxconn 65535 contimeout 5000 #連線超時 clitimeout 50000 #客戶端超時 srvtimeout 50000 #伺服器端超時stats uri #haproxy 監控頁面 /status listen www.example.com *:80 balance roundrobin #監聽的例項名稱,地址和埠 #負載均衡演算法 server web1 172.25.0.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5 server web2 172.25.0.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
2.haproxy負載均衡
新增使用者 更改連結數
重啟服務/etc/init.d/haproxy start 在server2和server3中分別開啟httpd
測試:客戶端輸入curl 172.25.0.116會輪詢
關掉一個http服務後會變紅色,表示服務不正常
日誌修改:
3.設定acl許可權:
vim /etc/haproxy/haproxy.cfg
172.25.0.16不能通過80埠訪問這臺主機(設定haproxy開啟的是80埠)
4.動靜分離:
vim haproxy.cfg 將訪問字尾為.php檔案的請求全部丟給server2 其他丟給server3
server2中安裝php
yum install php -y vim /var/www/html/index.php
瀏覽器訪問172.25.0.116/index.html
5.讀寫分離:
vim haproxy.cfg 將讀的請求交給server2處理 將寫的請求交給server3處理