Haproxy实现负载均衡
含義及理解:
1 . HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代理,支持虛擬主機, 它是免費、快速并且可靠的一種解決方案。HAProxy特別適用于那些負載特大的web站點, 這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的并發連接。并且它的運行模式使得它可以很簡單安全的整 合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。
2 . HAProxy 支持連接拒絕:因為維護一個連接的打開的開銷是很低的,有時我們很需要限制攻擊蠕蟲(attack bots),也就是說限制它們的連接打開從而限制它們的危害。 這個已經為一個陷于小型DDoS攻擊的網站開發了而且已經拯救了很多站點,這個優點也是其它負載均衡器沒有的。
實驗搭建:
server1 :haproxy :172.25.13.110
server2 :web1 :172.25.13.120
server3 :web2 :172.25.13.130
首先安裝服務在server1
yum install haproxy -y vim /etc/haproxy/haproxy.cfg添加下面的內容:
后端服務器設置:
安裝開啟httpd服務并且設置共享頁面。此處可以設置不同的共享內容,便于區分訪問的后端真實服務器,明顯的表現出負載均衡的效果。
測試: curl 172.25.13.110
發現實現反向代理以及負載均衡
作為反向代理服務器,varnish將自己的端口偽裝成所代理的后端服務器的端口,因此只能代理一種服務,但是haproxy可以同時代理多個服務。只需要設置不同的代理配置段。
配置文件中寫入了監控頁面,可以直接在web頁面上監控后端服務狀態:
訪問:172.25.13.110:8080/status
haproxy 自帶后端服務器的健康檢查,當某一個后端服務器宕機之后,其會自動自動將其移除出輪詢隊列,并在監控頁面顯示異常:
關閉server3httpd服務,模擬異常:
再次使用客戶端進行訪問測試:只訪問正常的后端服務器
[root@foundation13 images]# curl 172.25.13.110 server2 [root@foundation13 images]# curl 172.25.13.110 server2 [root@foundation13 images]# curl 172.25.13.110 server2查看監控頁面:異常后端服務被標紅:
動靜分離
根據實際情況可客戶方訪問請求,將不同類型的訪問請求調轉到不同的后端服務器。php請求交給php server處理,jsp請求交給tomcat處理,即業務上的應用請求分離,而haproxy完全可以利用acl匹配規則實現這一目的.
修改主機配置文件:
#設置接收請求的前端虛擬節點,Frontend可以增加規則直接指定具體使用后端的backend frontend main *:80 acl url_static path_beg -i /imagesacl url_static path_end -i .jpg .gif .png .css .js # 增加規則use_backend static if url_static default_backend app # 不同的條件對應不同的后端服務器backend static # 定義后端服務器server web1 172.25.13.120:80 checkbackend app # 定義后端服務器server web2 172.25.13.130:80 checksystemctl restart haproxy 重新啟動服務
后端服務器設置:
當訪問 http://172.25.13.110/images 時候,請求會被調轉到 172.25.13.120 。需要在該主機中創建:/var/www/html/images 目錄 ,提前在該目錄中放置一張圖片。
使用客戶端訪問 http://172.25.13.110/images 。訪問指定的后端服務器 172.25.13.120
主要是根據不同的請求將其指定到不同后端服務器,這就是動靜分離。
總結
以上是生活随笔為你收集整理的Haproxy实现负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10 iot core java_
- 下一篇: velocity自定义函数_veloci