haproxy配置說明 二

2. HAProxy的配置 前端

HAProxy配置中分紅五部份內容,固然這些組件不是必選的,能夠根據須要選擇部分做爲配置。 redis

global:參數是進程級的,一般和操做系統(OS)相關。這些參數通常只設置一次,若是配置無誤,就不須要再次配置進行修改 後端

defaults:配置默認參數的,這些參數能夠被利用配置到frontendbackendlisten組件 服務器

frontend:接收請求的前端虛擬節點,Frontend能夠根據規則直接指定具體使用後端的 backend(可動態選擇) cookie

backend:後端服務集羣的配置,是真實的服務器,一個Backend對應一個或者多個實體服務器。 負載均衡

listenFrontendBackend的組合體。 frontend

下面是HAProxy的一些經常使用的配置,這個配置是用來講明HAProxy的一些經常使用功能的配置,具體詳細配置請查看安裝目錄下的doc目錄下的文檔文件,或者到」 http://cn.haproxy.org/ tcp

下載中文配置說明文檔 ide

配置文件例子: 網站

global

#全局的日誌配置 其中日誌級別是[err warning info debug]

#local0 是日誌設備,必須爲以下24種標準syslog設備的一種

#kern user mail daemon auth syslog lpr news 

#uucp cron auth2 ftp ntp audit alert cron2 

#local0 local1 local2 local3 local4 local5 local6 local7 

#可是以前在/etc/syslog.conf文件中定義的是local0因此

#這裏也是用local0

log 127.0.0.1 local0 info #[err warning info debug]

#最大鏈接數

maxconn 4096

#用戶

user admin

#

group admin

#使HAProxy進程進入後臺運行。這是推薦的運行模式

daemon

#建立4個進程進入deamon模式運行。此參數要求將運行模式設置爲"daemon"

nbproc 4

#將全部進程的pid寫入文件啓動進程的用戶必須有權限訪問此文件。

pidfile /home/admin/haproxy/logs/haproxy.pid

defaults 

#默認的模式mode { tcp|http|health }tcp4層,http7層,health只會返回OK

mode http

#採用http日誌格式

option httplog

#三次鏈接失敗就認爲是服務器不可用,也能夠經過後面設置

retries 3

若是cookie寫入了serverId而客戶端不會刷新cookie

#serverId對應的服務器掛掉後,強制定向到其餘健康的服務器

option redispatch

#當服務器負載很高的時候,自動結束掉當前隊列處理比較久的連接

option abortonclose

#默認的最大鏈接數

maxconn 4096

#鏈接超時

contimeout 5000

#客戶端超時

clitimeout 30000

#服務器超時

srvtimeout 30000

#=心跳檢測超時

timeout check 2000

#注:一些參數值爲時間,好比說timeout。時間值一般單位爲毫秒(ms),可是也能夠經過加#後綴,來使用其餘的單位。

#- us : microseconds. 1 microsecond = 1/1000000 second

#- ms : milliseconds. 1 millisecond = 1/1000 second. This is the default.

#- s : seconds. 1s = 1000ms

#- m : minutes. 1m = 60s = 60000ms

#- h : hours. 1h = 60m = 3600s = 3600000ms

#- d : days. 1d = 24h = 1440m = 86400s = 86400000ms

########統計頁面配置############

listen admin_stats

#監聽端口

bind 0.0.0.0:1080

#http7層模式

mode http

#日誌設置

log 127.0.0.1 local0 err #[err warning info debug]

#統計頁面自動刷新時間

stats refresh 30s

#統計頁面url

stats uri /admin?stats

#統計頁面密碼框上提示文本

stats realm Gemini\ Haproxy

#統計頁面用戶名和密碼設置

stats auth admin:admin

stats auth admin1:admin1

#隱藏統計頁面上HAProxy的版本信息

stats hide-version

#######網站檢測listen定義############

listen site_status

bind 0.0.0.0:1081

mode http

log 127.0.0.1 local0 err #[err warning info debug]

#網站健康檢測URL,用來檢測HAProxy管理的網站是否能夠用,正常返回200,不正常返回500

monitor-uri /site_status

#定義網站down時的策略

#當掛在負載均衡上的指定backend的中有效機器數小於1臺時返回true

acl site_dead nbsrv(denali_server) lt 1

acl site_dead nbsrv(tm_server) lt 1 

acl site_dead nbsrv(mms_server) lt 1

#當知足策略的時候返回500

monitor fail if site_dead

#若是192.168.0.252或者192.168.0.31這兩天機器掛了

#認爲網站掛了,這時候返回500,判斷標準是若是mode

#http返回200認爲是正常的,若是modetcp認爲端口暢通是好的

monitor-net 192.168.0.252/31

 

########frontend配置############

frontend http_80_in

#監聽端口

bind 0.0.0.0:80

#http7層模式

mode http

#應用全局的日誌配置

log global

#啓用httplog

option httplog

#每次請求完畢後主動關閉http通道,HA-Proxy不支持keep-alive模式

option httpclose

#若是後端服務器須要得到客戶端的真實IP須要配置次參數,將能夠從Http Header

#得到客戶端IP

option forwardfor

相關文章
相關標籤/搜索