Haproxy實現反向代理及負載均衡

Haproxy實現反向代理及負載均衡

1.Haproxy介紹

HaProxy是一個特別適用於高可用性環境的TCP/HTTP開源的反向代理和負載均衡軟件。在七層負載均衡方面的功能很強大(支持cookie track, header rewrite等等),支持雙機熱備,支持虛擬主機,支持健康檢查,同時還提供直觀的監控頁面,可以清晰的監控服務集羣的運行狀況

2. Haproxy的配置

HAProxy的配通過程分爲3個主要部分:

  • 命令行參數,這是最優先的

  • global (全局)段,設置進程級參數;

  • 代理配置段,通常位於default,listen,backend這樣的形式內。

配置文件的語法是由關鍵字後跟可選的一個或者多個參數(參數之間有空格)組成。如果字符串中包含空格,必須用\進行轉義.

Haproxy配置段中分五大部分:

  • global:全局參數配置,進程級的,用來控制Haproxy啓動前的一些進程及系統設置

  • defaults:配置些默認的參數,可以被frontend,backend, listen段集成使用

  • frontend :用來匹配接收客戶所請求的域名、uri等,並針對不同的匹配做不同的請求處理

  • backend:定義後端服務器集羣,以及對後端服務器集羣的一些權重、隊列、連接數等選項的設置,類似於nginx中的upstream模塊

  • listen:可以理解爲frontend和backend的組合體。Haproxy配置文件的配通方法主要有兩種,一種是由前端(frontend )和後端( backend )配置塊組成,前端和後端都可以有多個。第二種方法是隻有一個listen配置塊來同時實現前端和後端。最常用也是推薦的方法爲第一種,即frontend和backend的模式

3.實現反向代理及負載均衡

實驗環境:
server1---haproxy
server2---服務端
server3---服務端

server1:

step1 配置haproxy:

yum install haproxy -y
cd /etc/haproxy
ls
vim haproxy.cfg 
把前面的示例註釋掉,再寫入以下內容:
 87 listen admin *:8080
 88         stats enable
 89         stats uri /status       #監控頁面地址
 90         stats auth admin:westos #管理帳號和密碼
 91         stats refresh 5s        #刷新頻率
 92 
 93 listen westos *:80              #監聽的實例名稱,地址和端口
 94         balance roundrobin      #負載均衡算法
 95         server web1 172.25.254.2:80 check       #後端
 96         server web2 172.25.254.3:80 check

在這裏插入圖片描述
step2 啓動haproxy:

systemctl start haproxy	#啓動haproxy
netstat -antlp

在這裏插入圖片描述

在server2和server3中:

配置後端http:

yum install httpd -y
cd /var/www/html/
vim index.html
systemctl start httpd

在這裏插入圖片描述
在這裏插入圖片描述

測試:

訪問172.25.254.1:8080/status---輸入用戶名admin和密碼westos---看到監控頁面
curl 172.25.254.1	#看到server2和server3輪詢的情況

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
關閉server2的http:

systemctl stop httpd

再次測試:

curl 172.25.254.1	#只有server3
在172.25.254.1:8080/status監控頁面可以看到server2 down的信息

在這裏插入圖片描述

在這裏插入圖片描述

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