亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

爛泥:高負載均衡學習haproxy之安裝與配置

2024-06-28 13:19:03
字體:
來源:轉載
供稿:網友
爛泥:高負載均衡學習haPRoxy之安裝與配置

本文由秀依林楓提供友情贊助,首發于爛泥行天下

有關高負載均衡的軟件,目前使用比較多的是haproxy、nginx和lvs。下面我們就開始學習haprxoy這款軟件。

一、haproxy介紹

以下開始介紹有關haproxy的原理及其優點。

1.1、haproxy原理

haproxy提供高可用性、負載均衡以及基于TCP(第四層)和HTTP(第七層)應用的代理,支持虛擬主機,它是免費、快速并且可靠的一種解決方案。

haproxy特別適用于那些負載特別大的web站點,這些站點通常又需要會話保持或七層處理。haproxy運行在時下的硬件上,完全可以支持數以萬計的并發連接,并且它的運行模式使得它可以很簡單安全的整合進您當前的架構中,同時可以保護你的web服務器不被暴露到網絡上。

haproxy實現了一種事件驅動、單一進程模型,此模型支持非常大的并發連接數。多進程或多線程模型受內存限制、系統調度器限制以及無處不在的鎖限制,很少能處理數千并發連接。

事件驅動模型因為在有更好的資源和時間管理的用戶端(User-Space)實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程序通常擴展性較差。這就是為什么他們必須進行優化以使每個CPU時間片(Cycle)做更多的工作。

1.2、haproxy的優點

(1)免費開源,穩定性也是非常好。單haproxy也跑得不錯,穩定性可以與硬件級的F5相媲美。

(2)根據官方文檔,haproxy可以跑滿10Gbps,這個數值作為軟件級負載均衡器是相當驚人的。

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

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

(5)haproxy現多于線上的MySQL集群環境,我們常用于它作為MySQL(讀)負載均衡。

(6)自帶強大的監控服務器狀態的頁面,實際環境中我們結合Nagios進行郵件或短信報警。

(7)HAProxy支持虛擬主機,許多朋友說它不支持虛擬主機是錯誤的,通過測試我們知道,HAProxy是支持虛擬主機的。

PS:本次實驗的OS為Ubuntu server 14.04。

二、業務架構圖

現在我們以實際的業務架構圖,來使用haproxy。業務架構圖如下:

clip_image001

這個是基本的業務架構圖,對外是haproxy這臺服務器。目前暫時沒有考慮haproxy的單點故障問題,這個問題我們會在后續的keepalived文章中會進行介紹。

現在要求如下:

2.1、域名跳轉

客戶端訪問http://dg.test.com時,要把請求分發到192.168.5.171:8080、192.168.5.174:8080、192.168.5.178:8080,這三臺服務器上。

客戶端訪問http://ilanni.test.com時,要把請求分發到ilanni.com,這臺服務器上。

2.2、IP地址跳轉

客戶端訪問http://192.168.5.171時,要把請求分發到192.168.5.174:80、192.168.5.178:80這兩臺服務器上。同時還要求客戶端每一次訪問,都跳轉到不同的服務器上。

2.3、端口跳轉

客戶端訪問http://dg.test.com:8090和http://ilanni.test.com:8090這兩個地址時,要把請求分發到192.168.5.174:8090、192.168.5.178:8090,這兩臺服務器上。

2.4、默認跳轉

如果客戶端訪問的不是dg.test.com與192.168.5.171,這兩個地址的話,要把請求全部分發到192.168.5.178:8080上。

2.5、多ACL匹配

如果客戶端的IP是192.168.5.140,同時訪問的是http://192.168.5.171時,要把請求分發到www.ilanni.com上。

三、安裝haproxy

haproxy的官網是http://www.haproxy.org/,如果打不開此站點,請FQ(如何FQ,聯系我)。

haproxy的安裝我們可以分為源碼方式和apt-get方式。下面對其安裝方式進行一一講解。

3.1 源碼方式安裝haproxy

haprxoy目前最新的版本為1.6,為了業務的穩定,在此我們選擇的是1.3.15.27這個版本。

在進行源碼安裝之前,首先要安裝相關的軟件庫。如下:

sudo apt-get -y install make gcc

clip_image002

創建運行haproxy時,使用的用戶。在此我們使用haproxy這個用戶,而且此用戶不能登錄到系統。如下:

sudo useradd -m haproxy

cat /etc/passwd |grep haproxy

clip_image003

通過上圖,我們可以看到haproxy用戶及用戶組的ID均為1005

現在開始下載源碼包如下:

wget http://www.haproxy.org/download/1.3/src/haproxy-1.3.15.27.tar.gz

解壓源碼包,如下:

tar -xf haproxy-1.3.15.27.tar.gz

cd haproxy-1.3.15.27/

clip_image004

查看haproxy的安裝文件,如下:

more README

clip_image005

這張圖很明顯的告訴我們,編譯安裝haproxy需要的軟件庫。除此之外還需要選擇OS的內核版本,linux2.6以上的版本,我們都選擇linux26。

clip_image006

通過查看安裝文檔,我們可以很清楚的看出要編譯haproxy,我們首先要知道OS內核版本以及OS的位數。如下:

uname –a

clip_image007

通過上圖,我們可以很容易的看出linux內核的版本與OS的位數。

現在開始編譯haproxy,如下:

make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy

clip_image008

其中TARGET表示OS的內核版本,ARCH表示OS的位數,PREFIX表示haprxoy的安裝路徑。

現在開始安裝haproxy,如下:

sudo make install PREFIX=/usr/local/haproxy

clip_image009

查看安裝后的文件,如下:

ll /usr/local/haproxy/

clip_image010

編輯haproxy的配置文件,haproxy默認給我們提供一個配置文件模版。如下:

sudo cp examples/haproxy.cfg /usr/local/haproxy/

clip_image011

查看haprxoy的版本,如下:

/usr/local/haproxy/sbin/haproxy -v

clip_image012

通過上圖,可以看到haproxy的版本確實是1.3.27。有關haproxy的配置實例見第三章。

3.2 apt-get方式安裝haproxy

apt-get方式安裝haproxy,如下:

sudo apt-get -y install haproxy

clip_image013

查看haproxy安裝的文件

dpkg -L haproxy

clip_image014

安裝完畢后,haproxy默認已經啟動。如下:

ps -ef |grep haproxy

clip_image015

查看haproxy版本,如下:

haproxy -v

clip_image016

通過上圖,我們知道現在haproxy的版本為1.5.4。

注意:apt-get方式安裝haproxy,如果版本為1.4.24的話。我們一定要修改/etc/default/haproxy,如下:

sudo vi /etc/default/haproxy

ENABLED=1

clip_image017

如果不修改的話,使用haproxy啟動腳本的話,是沒有用處的,也就說腳本不會重新加載haproxy的配置。

查看haproxy的配置文件,如下:

cat /etc/haproxy/haproxy.cfg

clip_image018

通過上圖,我們可以很明顯的看出默認的配置文件里面是沒有內容的。

四、配置haprxoy

haproxy安裝完畢后,我們來配置haproxy。源碼安裝的haprxoy在前面我們已經講解了,haproxy提供的配置模版haproxy.cfg。

4.1、haproxy配置實例

我們現在就以這個模版為例,配置haproxy。haproxy配置文件內容,如下:

grep -vE "^#|^$" haproxy.cfg

global

log 127.0.0.1 local0

log 127.0.0.1 local1 notice

maxconn 4096

uid 1005

gid 1005

daemon

defaults

log global

mode http

option httplog

option dontlognull

retries 3

option redispatch

maxconn 2000

contimeout 5000

clitimeout 50000

srvtimeout 50000

listen admin_stats

bind 192.168.5.171:1080

mode http

option httplog

maxconn 10

stats refresh 30s

stats uri /stats

stats auth admin:admin

stats hide-version

frontend weblb

bind *:80

acl is_dg hdr_beg(host) dg.test.com

acl is_ilanni hdr_beg(host) ilanni.test.com

acl is_171 hdr_beg(host) 192.168.5.171

acl is_ip src 192.168.5.140

use_backend acl if is_171 is_ip

use_backend dgserver if is_dg

use_backend ilanni if is_ilanni

use_backend 171server if is_171

default_backend backend_default

backend dgserver

balance source

server web1 192.168.5.171:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

server web2 192.168.5.174:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

server web3 192.168.5.178:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend 171server

balance roundrobin

server dg1 192.168.5.174:80 check

server dg2 192.168.5.178:80 check

backend ilanni

server web1 www.yuanbaopu.com:80 weight 3 check inter 2000 rise 2 fall 3

backend acl

balance source

server web1 www.ilanni.com:80 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend backend_default

server web1 192.168.5.178:8080 weight 3 check inter 2000 rise 2 fall 3

listen 8090

bind 0.0.0.0:8090

mode http

balance roundrobin

server web1 192.168.5.174:8090 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3

server web2 192.168.5.178:8090 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

clip_image019

clip_image020

4.2、haproxy配置實例講解

有關haproxy配置文件我們先簡單介紹,如下:

global配置段,用于設定全局配置參數。

代理配置段中,主要是使用defaults、frontend、backend、listen關鍵詞。

defaults配置段用于為所有其它配置段提供默認參數,這配置默認配置參數可由下一個“defaults”所重新設定。

frontend配置段用于定義一系列監聽的套接字,這些套接字可接受客戶端請求并與之建立連接。

backend配置段用于定義一系列“后端”服務器,代理將會將對應客戶端的請求轉發至這些服務器。

listen配置段通過關聯“前端”和“后端”定義了一個完整的代理,通常只對TCP流量有用。

在上述haproxy配置文件中,我們主要講解ACL的匹配規則。

acl is_dg hdr_beg(host) dg.test.com

該行定義一個is_dg規則,如果客戶端請求的是dg.test.com這個域名,則定義該規則為is_dg。

use_backend dgserver if is_dg

該定義一個dgserver服務器組,如果客戶端請求符合is_dg定義的規則,則把該客戶端的請求分發到dgserver服務器組。

acl is_ip src 192.168.5.140

該行定義一個is_ip規則,如果客戶端的IP地址是192.168.5.140,則定義該規則為is_ip。

use_backend acl if is_171 is_ip

該定義一個acl服務器組,如果客戶端請求同時符合is_ip和is_171定義的規則,則把該客戶端的請求分發到acl服務器組。

default_backend backend_default

該行定義一個默認服務器組,如果客戶端請求不符合上述定義的任何一個規則,則把該客戶端的請求分發到backend_default服務器組。

其他的規則就不一一進行講解了。

以上就是按照目前的業務要求,配置的haproxy。有關這些配置項參數,我們會在下一篇文章中進行詳細介紹。

五、查看haproxy監控頁面

haproxy配置完畢后,現在來啟動haproxy,使用如下命令:

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

ps -ef |grep haproxy

netstat -tunlp|grep 3173

clip_image021

現在我們來打開haproxy的監控頁面,如下:

http://192.168.5.171:1080/stats

clip_image022

輸入用戶名和密碼后,haproxy監控后臺服務器的情況,如下:

clip_image023

現在我們來看看haprxoy所有后臺服務器的情況,先來看看dgserver組,如下:

clip_image024

通過上圖,我們可以看到dgserver組,目前web1這臺服務器處于宕機狀態。也就是說haprxoy不會把客戶端的請求分發到web1服務器上了。

現在我們再來看看171server組,如下:

clip_image025

通過上圖,我們可以很明顯的看出171server組的服務器目前都是正常運行的。

8090組服務器的情況,如下:

clip_image026

通過上圖,我們可以看到8090組的服務器也是有一臺是宕機的。

六、測試haproxy負載均衡

haprxoy配置完畢并正常啟動后,我們現在來根據業務的要求進行測試。

6.1 測試域名跳轉

使用如下命令測試域名跳轉:

curl http://dg.test.com

clip_image027

clip_image028

通過上圖,我們可以看到當我們使用dg.test.com這個域名訪問時,haproxy確實為我們進行跳轉了,而且跳轉到了192.168.5.174這臺服務器上。

因為考慮到客戶端session會話的問題,所以我們在配置haproxy負載均衡沒有使用roundrobin輪詢的方法,而是使用source方法。所以haproxy目前沒有把請求分發到192.168.5.171:8080、192.168.5.178:8080這兩臺服務器上。

現在我們訪問ilanni.test.com,如下:

clip_image029

通過上圖,我們可以看到訪問不同的域名,haproxy把請求分發到不同的服務器上。

6.2 測試IP地址跳轉

使用如下命令測試IP地址跳轉:

curl http://192.168.5.171

clip_image030

通過上圖,我們可以很明顯的看到,第一次使用curl http://192.168.5.171訪問時,haproxy是把請求分發171server組的192.168.5.174這臺機器上。而第二次訪問時,把請求分發171server組的192.168.5.178這臺機器上。

因為在haproxy配置中,我們使用的是roundrobin輪詢方法,所以客戶端的每一次請求,haproxy會把請求分發到不同的服務器上。

6.3 測試端口跳轉

使用如下命令測試IP地址跳轉:

curl http://dg.test.com:8090

curl http://ilanni.test.com:8090

clip_image031

通過上圖,我們可以很明顯的看到客戶端在通過dg.test.com:8090和ilanni.test.com:8090進行訪問時,haproxy確實把請求分發到了8090組服務器上的192.168.5.178:8090上。

6.4 測試默認跳轉

要測試默認跳轉,我們可以隨便使用一個域名進行測試。如下:

curl http://test.test.com

clip_image032

通過上圖,我們可以很明顯的看出haproxy把test.test.com的請求轉發到了默認服務器組的192.168.5.178:8080上。

6.5 測試多ACL匹配

要測試默認跳轉,我們先切換到192.168.5.140這臺機器上,然后訪問http://192.168.5.171。如下:

clip_image033

clip_image034

通過上圖,我們可以很明顯的看到在192.168.5.171這臺機器上訪問http://192.168.5.171時,haproxy確實把請求分發到www.ilanni.com這臺機器上。

七、centos安裝haproxy

有關在centos上安裝haproxy,我們在此就不多做介紹了。只把相關的操作命令貼出來。

yum方式安裝:yum -y install haproxy

源碼方

上一篇:shell腳本學習指南

下一篇:shell編程入門

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区丝袜| 久久高清视频免费| 欧美日韩中文字幕综合视频| 国产精品wwww| 国产一区二区香蕉| 久久激情五月丁香伊人| 亚州成人av在线| 国产精品久久久久久久久久99| 97精品伊人久久久大香线蕉| 亚洲天堂网在线观看| 亚洲精品在线91| 久久九九精品99国产精品| 8050国产精品久久久久久| 日韩精品在线第一页| 国内精品久久久| 国产成人久久久精品一区| 亚洲国产精品成人精品| 91系列在线播放| 久久精彩免费视频| 91国偷自产一区二区三区的观看方式| 国产精品久久91| 亚洲视频在线免费看| 欧美孕妇性xx| 欧美日韩国产第一页| 国产裸体写真av一区二区| 亚洲精品第一国产综合精品| 91精品久久久久久久久久| 欧美国产日韩中文字幕在线| 欧美在线视频免费观看| 国产精品久久久久国产a级| 这里只有精品在线播放| 亚洲精品有码在线| 日韩视频在线观看免费| 日本一区二区不卡| 成人精品久久av网站| 亚洲国产日韩欧美综合久久| 最近日韩中文字幕中文| 在线播放精品一区二区三区| 日本欧美一级片| 欧美黄色片在线观看| 国产欧美精品va在线观看| 欧美激情综合亚洲一二区| 国产亚洲激情在线| 在线日韩第一页| 国产精品入口免费视| 超碰91人人草人人干| 日韩精品视频免费| 97视频在线看| 日本精品性网站在线观看| 日韩少妇与小伙激情| 视频在线观看一区二区| 亚洲国产精品国自产拍av秋霞| 中文字幕不卡在线视频极品| 国模视频一区二区| 亚洲综合在线播放| 午夜精品免费视频| 日韩动漫免费观看电视剧高清| 久久久国产一区二区三区| 亚洲精品国产精品国自产观看浪潮| 超碰日本道色综合久久综合| 成人欧美在线观看| 狠狠久久五月精品中文字幕| 色婷婷av一区二区三区久久| 国产精品久久久久影院日本| 亚洲一区二区三区四区视频| 中文字幕亚洲欧美日韩在线不卡| 国产在线精品自拍| 国产精品久久视频| 91国产一区在线| 亚洲精品一区二三区不卡| 尤物精品国产第一福利三区| 久久久久久国产精品久久| 亚洲综合色激情五月| 色琪琪综合男人的天堂aⅴ视频| 538国产精品视频一区二区| 韩国三级日本三级少妇99| 北条麻妃99精品青青久久| 亚洲一区二区黄| 4438全国亚洲精品在线观看视频| 日韩国产激情在线| 久久精品视频99| 91色在线视频| 国产精品视频不卡| 国产精品极品美女在线观看免费| 国语自产精品视频在线看| 91精品国产91久久久久久吃药| 久久久精品网站| 久久久精品影院| 欧美成人免费在线观看| 成人国产精品一区二区| 亚洲网站在线观看| 欧美在线观看一区二区三区| 国产视频精品va久久久久久| 久久影视电视剧免费网站清宫辞电视| 91亚洲国产成人久久精品网站| 国产美女搞久久| 久久在精品线影院精品国产| 亚洲成人a级网| 久久精品一本久久99精品| 国内精品400部情侣激情| 久久久久久久国产精品视频| 欧美日韩国产在线看| 欧美剧在线观看| 欧美疯狂做受xxxx高潮| 国产日韩在线一区| 按摩亚洲人久久| 欧美一区二区三区免费观看| 日韩成人xxxx| 国产精品久久久久久久久久三级| 久久久在线免费观看| 色偷偷av亚洲男人的天堂| 狠狠做深爱婷婷久久综合一区| 国产91精品在线播放| 欧美黄色片免费观看| 777国产偷窥盗摄精品视频| 国产精品久久一区主播| 久久九九热免费视频| 国产aaa精品| 中文字幕亚洲综合| 中文字幕久热精品在线视频| 亚洲天堂网在线观看| 国产综合色香蕉精品| 欧美在线视频在线播放完整版免费观看| 日韩欧美在线第一页| 日韩精品在线观看网站| 国产主播精品在线| 欧美性xxxx| 国产日韩欧美在线观看| 亚洲精品国产成人| 亚洲美女av在线播放| 中日韩美女免费视频网站在线观看| 亚洲第一区中文字幕| 欧美大学生性色视频| 91精品视频在线免费观看| 日韩av电影免费观看高清| 中文字幕在线看视频国产欧美在线看完整| 国产成人精品久久二区二区91| 日本精品一区二区三区在线播放视频| 日韩亚洲第一页| 欧美亚洲激情在线| 日韩成人在线视频观看| 亚洲欧美日韩一区二区在线| 欧美与欧洲交xxxx免费观看| 国产69久久精品成人看| 91网站在线看| 亚洲性视频网站| 国产精品美女999| 国产性色av一区二区| 精品欧美激情精品一区| 伊人久久久久久久久久久| 欧美亚洲第一页| 91中文精品字幕在线视频| 日韩精品视频中文在线观看| 91亚洲精品在线| 国产精品激情自拍| 日韩中文字幕国产| 欧美日韩国产麻豆| 久久九九全国免费精品观看| 狠狠躁18三区二区一区| 亚洲激情电影中文字幕| 成人两性免费视频| 日韩精品中文字幕久久臀| 日本道色综合久久影院| 青草成人免费视频|