日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HAProxy介绍及配置文件详解

發(fā)布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HAProxy介绍及配置文件详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、HAProxy簡介

HAProxy是一個開源的、高性能的、基于TCP和HTTP應(yīng)用的負載均衡軟件,借助HAProxy可快速、可靠地提供基于TCP和HTTP應(yīng)用的負載均衡解決方案

二、HAProxy優(yōu)點

1) 可靠性和穩(wěn)定性非常好,可以與硬件的F5相媲美
2) 最高可以同時維護40000--50000個并發(fā)連接,單位時間內(nèi)處理的最大請求數(shù)為20000個,最大數(shù)據(jù)處理能力可達10Gbps
3) 支持多于8種負載均衡算法 ,同時也支持session保持
4) 支持虛擬主機功能
5) 從HAProxy 1.3版本后開始支持連接拒絕、全透明代理等功能
6) HAProxy擁有一個功能強大的服務(wù)器狀態(tài)監(jiān)控頁面
7) HAProxy擁有功能強大的ACL支持

三、HAProxy配置文件詳解

根據(jù)功能用途不同,其配置文件主要由五個部分組成,分別為global部分,defaults部分,frontend部分,backend部分,listen部分

1)global部分

用于設(shè)置全局配置參數(shù),屬于進程級的配置,通常與操作系統(tǒng)配置相關(guān)

2) defaults部分

默認參數(shù)的配置部分。在些部分設(shè)置的參數(shù),默認會自動引用到下面的frontend, backend和listen部分

3) frontend部分

用于設(shè)置接收用戶請求的前端虛擬節(jié)點。frontend可以根據(jù)ACL規(guī)則直接指定要使用的后端backend

4) backend部分

用于設(shè)置集群后端服務(wù)集群的配置,也就是用來添加一組真實服務(wù)器,以處理前端用戶的請求

5) listen部分

此部分是frontend和backend部分的結(jié)合體

配置項說明

1)global部分

globallog 127.0.0.1 local1 infomaxconn 4096user nobodygroup nobodydaemonnbproc 1pidfile /usr/local/haproxy/logs/haproxy.pid

log

全局的日志配置,local0是日志設(shè)備,info表示日志級別。其中日志級別有err, warning, info, debug 4種。這個配置表示使用127.0.0.1上的rsyslog服務(wù)中的local0日志設(shè)備,記錄日志等級為info

maxconn

設(shè)置每個HAProxy進程可接受的最大并發(fā)連接數(shù)

nbproc

設(shè)置HAProxy啟動時可創(chuàng)建的進程數(shù),此參數(shù)要求將HAProxy運行模式設(shè)置為daemon,默認只啟動一個進程;建議該值設(shè)置時小于CPU核數(shù)

daemon

設(shè)置HAProxy進程進入后臺運行,這是推薦的運行模式

user/group

設(shè)置啟動HAProxy進程的用戶和組

pidfile

指定HAProxy進程ID的存放位置

2) defaults部分

defaults mode httpretires 3timeout connect 10stimeout client 20stimeout server 30stimeout check 5s

mode

設(shè)置HAProxy實例默認的運行模式,有tcp, http, health三個可選值
tcp模式:
在此模式下,客戶端和服務(wù)器端間將建立一個全雙工的連接,不會對七層報文做任何檢查,為默認的模式;經(jīng)常用于SSL, SSH, SMTP等應(yīng)用
http模式
在此模式下,客戶端請求在轉(zhuǎn)發(fā)至后端服務(wù)器前將會被深度分析,所有不與RFC格式兼容的請求都會被拒絕
health模式
目前已經(jīng)被廢除

retires

設(shè)置連接后端服務(wù)器的失敗重試次數(shù),如果連接失敗的次數(shù)超過該數(shù)值,HAProxy會將對應(yīng)的后端服務(wù)器標記為不可用

timeout connect

設(shè)置成功連接到一臺服務(wù)器的最長等待時間,默認單位是毫秒,但也可以使用其他時間單位作后綴

timeout client

設(shè)置連接客戶端發(fā)送數(shù)據(jù)時最長等待時間,默認單位是毫秒,但也可以使用其他時間單位作后綴

timeout server

設(shè)置服務(wù)器端回應(yīng)客戶端數(shù)據(jù)發(fā)送的最長等待時間,默認單位是毫秒,但也可以使用其他時間單位作后綴

timeout check

設(shè)置對后端服務(wù)器的檢測超時時間,默認單位是毫秒,但也可以使用其他時間單位作后綴

3) frontend部分

frontend wwwbind *:80mode http option httplog option forwardforoption httpcloselog globaldefault_backend htmpool

通過frontend關(guān)鍵字定義了一個名為"www"的前端虛擬節(jié)點

bind

此選項用于定義一個或者幾個監(jiān)聽的套接字,只能在frontend和listen中定義
格式如下:
bind [<address>:[port_range]] [interface]

option httplog

默認情況下,HAProxy日志是不記錄HTTP請求的,此選項的作用是啟用日志記錄HTTP請求

option forwardfor

此選項的作用是保證后端服務(wù)器可記錄客戶端真實的IP

option httpclose

此選項表示客戶端和服務(wù)端完成一次連接請求后,HAProxy將主動關(guān)閉此TCP連接。這是對性能非常有幫助的一個參數(shù)

log global

表示使用global段中定義的日志格式

default_backend htmpool

此選項用于指定后端默認的服務(wù)器池

4) backend部分

backend htmpoolmode http option redispatchoption abortonclosebalance roundrobincookie SERVERIDoption httpchk GET /index.php server web1 10.1.1.1:80 cookie server1 weight 6 check inter 2000 rise 2 fall 3server web2 10.1.1.2:80 cookie server2 weight 6 check inter 2000 rise 2 fall 3

backend用于定義一個名稱為htmpool的后端服務(wù)器組,根據(jù)需要可以定義多個

option redispatch

此參數(shù)用于cookie保持的環(huán)境中。在默認情況下,HAProxy會將其請求的后端服務(wù)器的serverID插入cookie中,以保證會話的session持久性。而如果后端服務(wù)器出現(xiàn)故障,客戶端的cookie是不會刷新的,這就會造成無法訪問。此時,如果設(shè)置了此參數(shù),就會將客戶的請求強制定向到另外一臺健康的后端服務(wù)器上,以保證服務(wù)正常

option abortonclose

此參數(shù)可以在服務(wù)器負載很高的情況下,自動結(jié)束當前隊列中處理時間比較長的連接

balance roundrobin

指定負載均衡算法

HAProxy支持的負載均衡算法:

roundrobin
基于權(quán)重進行輪叫調(diào)度的算法

static-rr
基于權(quán)重進行輪叫調(diào)度的算法,不過此算法為靜態(tài)算法,在運行時調(diào)整其服務(wù)器權(quán)重不會生效

source
基于請求源IP的算法。此算法先對請求的源IP進行HASH運算,然后將結(jié)果與后端服務(wù)器的權(quán)重總數(shù)相除后轉(zhuǎn)發(fā)至某臺匹配的后端服務(wù)器。這種方式可以使同一個客戶端IP的請求始終轉(zhuǎn)發(fā)到某特定的后端服務(wù)器

leastconn
此算法會將新的連接請求轉(zhuǎn)發(fā)到具有最少連接數(shù)目的后端服務(wù)器。在會話時間較長的場景中推薦使用此算法 ,例如數(shù)據(jù)庫負載均衡

uri
此算法會對部分或整個URI進行HASH運算,再經(jīng)過與服務(wù)器的總權(quán)重相除,最后轉(zhuǎn)發(fā)到某臺匹配的后端服務(wù)器上

uri_param
此算法會根據(jù)URL路徑中的參數(shù)進行轉(zhuǎn)發(fā),這樣可保證在后端真實服務(wù)器數(shù)據(jù)不變時,同一個用戶的請求始終分發(fā)到同一臺機器上

hdr
此算法根據(jù)HTTP頭進行轉(zhuǎn)發(fā),如果指定的HTTP頭名稱不存在,則使用roundrobin算法 進行策略轉(zhuǎn)發(fā)

cookie SERVERID

表示允許向cookie插入SERVERID,每臺服務(wù)器的SERVERID可在下面的server關(guān)鍵字中使用cookie關(guān)鍵字定義

option httpchk

此選項表示啟用HTTP的服務(wù)狀態(tài)檢測功能
格式如下:
option httpchk <method> <uri> <version>

method

表示HTTP請求的方式,常用的有OPTIONS,HEAD, GET幾種方式。一般的健康檢查可以采用HEAD方式進行,而不是采用GET方式,這是因為HEAD方式?jīng)]有數(shù)據(jù)返回,僅檢查響應(yīng)報文的狀態(tài)碼是不是200.因此相對于GET, HEAD的方式更簡單、更快

uri

表示要檢測的URL地址

version

指定心跳檢測時的HTTP的版本號

server web1 10.1.1.1:80 cookie server1 weight 6 check inter 2000 rise 2 fall 3

server用于定義多臺后端真實服務(wù)器,不能用于frontend和listen段

格式如下:

server <name> <address>:[port] [param*]

name

為后端真實服務(wù)器指定一個內(nèi)部名稱,隨便定義一個即可

address:port

指定后端服務(wù)器的IP地址及端口

param*參數(shù)

常用的參數(shù):
check 表示啟用對此后端服務(wù)器執(zhí)行健康狀態(tài)檢查
inter 設(shè)置健康狀態(tài)檢查的時間間隔,單位是毫秒
rise 檢查多少次認為服務(wù)器可用
fall 檢查多少次認為服務(wù)器不可用
weight 設(shè)置服務(wù)器的權(quán)重,默認為1, 最大為256。 設(shè)置為0表示不參與負載均衡
backup 設(shè)置備份服務(wù)器,用于所有后端服務(wù)器全部不可用時
cookie 為指定的后端服務(wù)器設(shè)置cookie值,此處指定的值將在請求入站時被檢查,第一次為此值挑選的后端服務(wù)器將在后續(xù)的請求中一直被選中,其目的在于實現(xiàn)持久連接的功能

5) listen部分

listen admin_statusbind 0.0.0.0:9188mode http log 127.0.0.1 local0 errstats refresh 30sstats uri /haproxy-status stats realm Welcome login stats auth admin:admin stats hide-version stats admin if TRUE

listen部分用于配置HAProxy監(jiān)控頁面相關(guān)的參數(shù)

stats refresh 30s

設(shè)置HAProxy監(jiān)控統(tǒng)計頁面自動刷新的時間

stats uri /haproxy-status

設(shè)置HAProxy監(jiān)控頁面訪問的URI路徑

stats realm Welcome login

設(shè)置登錄監(jiān)控頁面時,密碼框上的提示信息

stats auth admin:admin

設(shè)置登錄監(jiān)控頁面的用戶名,密碼。用戶密碼用冒號隔開,可以設(shè)置多個,每行一個

stats hide-version

設(shè)置在監(jiān)控頁面上隱藏HAProxy的版本號

status admin if TRUE

設(shè)置此選項,可在監(jiān)控頁面上啟用、禁用后端服務(wù)器,僅在1.4.9版本以后生效

轉(zhuǎn)載于:https://blog.51cto.com/12244079/2125384

總結(jié)

以上是生活随笔為你收集整理的HAProxy介绍及配置文件详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。