一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

haproxy參數(shù)配置說明

 waitingnothing 2018-04-25
[:port][param*]
在后端聲明一個server,因此,不能用于defaults和frontend區(qū)段。
: 為此服務器指定的內(nèi)部名稱,其將會出現(xiàn)在日志及警告信息中;如果設定了“http-send-server-name”,他還將會被添加至發(fā)往此服務器的請求首部中
:此服務器的IPv4地址,也支持使用可解析的主機名,只不過在啟動時需要解析主機名至響應的IPV4地址
<:port>:指定將連接請求所發(fā)往此服務器時的目標端口,其為可選項,為設定是,將使用客戶端請求時的同一相同端口
[param*]:為此服務器設定的一系列參數(shù):其可以得參數(shù)非常多,具體請參考官方文檔(http://cbonte./haproxy-dconv/configuration-1.4.html#5)中的說明,下面僅說明幾個常用的參數(shù)
服務器或默認服務器參數(shù):
backup:設定為備用服務器,僅在負載均衡場景中的其他server均不可以啟用此server
check:啟動對此server執(zhí)行監(jiān)控狀態(tài)檢查,其可以借助于額外的其他參數(shù)完成更精細的設定,如:
inter: 設定監(jiān)控狀態(tài)檢查的時間間隔,單位為毫秒,默認為2000,也可以使用fastinter和downinter來根據(jù)服務器端專題優(yōu)化此事件延遲
rise:設定檢查狀態(tài)檢查中,某離線的server從離線狀態(tài)轉(zhuǎn)換至正常狀態(tài)需要成功檢查的次數(shù)
fall:設定檢查狀態(tài)檢查中,某離線的server從正常狀態(tài)轉(zhuǎn)換至離線狀態(tài)需要成功檢查的次數(shù)
cookie:為指定server設定cookie值,此處指定的值將會在請求入站時被檢查,第一次為此值挑選的server將會倍后續(xù)的請求所選中,其目的在于實現(xiàn)持久連接的功能
maxconn:指定此服務器接受的最大并發(fā)連接數(shù),如果發(fā)往此服務器的連接數(shù)目高于此處指定的值,其將被放置于請求隊列,以等待其他連接被釋放
maxqueue:通過觀察服務器的通信狀況來判斷其健康狀態(tài),默認為禁用,其支持的類型有“l(fā)ayer 4”和“l(fā)ayer 7”,“l(fā)ayer 7”僅能用于http代理場景
redir:啟用重定向功能,將發(fā)往此服務的GET和HEAD請求均以302狀態(tài)碼響應,需要注意的是,在prefix后面不能使用/,且不能使用相對地址,以避免造成循環(huán),例如


server srv1 192..168.1.202:80 redir http://imageserver. check
weight: 權(quán)重,默認為1,最大值為256,0表示不參與負載均衡
檢查方法:
 option httpchk
 option httpchk
 option httpchk
 option httpchk:不能用于frontend端,例如:


backend https_relay
mode tcp
option httpchk OPTIONS * HTTP/1.1rnHost: www
server apache1 192.168.1.1:443 check port 80






capture request header
capture request header len
捕獲并記錄指定的請求首部最近一次出現(xiàn)時的第一個值,僅能用于“frontend”和“l(fā)isten”區(qū)段,捕獲的首部值使用花括號{}括起來后添加進日志中,如果需要捕獲多個首部值,他們將以指定的次序出現(xiàn)在日志文件中,并以豎線“|”作為分隔符,不存在的首部記錄為空字符串,最長需要捕獲的首部包括在虛擬主機環(huán)境中使用的“host”、上傳請求首部中的“Content-length”、快速區(qū)別現(xiàn)實用戶和網(wǎng)絡機器人“User-agent”,已經(jīng)代理環(huán)境中距離請求來源的“X-Forword-For”
: 要捕獲的首部的名稱,此名稱不區(qū)分大小寫,但建議與他們出現(xiàn)在首部中的格式相同,比如大寫首字母,需要注意的是,記錄在日志的是首部的值,而非首部名稱
: 指定距離首部值時所記錄的精確長度,超出的部分將會倍忽略
可以捕獲的請求首部的個數(shù)沒有限制,但每個捕獲最多能記錄64個字符,為了保證同一個frontend中日志格式的統(tǒng)一性,首部捕獲僅能在frontend中定義


capture response header
capture response header len
捕獲并記錄響應首部。其格式和要點同捕獲的請求首部響應


stats enable
啟用基于程序編譯時默認設置的統(tǒng)計報告,不能用于“frontend”區(qū)段,只要沒有額外的其他設定,他們就會使用如下的配置        
- stats uri   : /haproxy?stats 
- stats realm : 'HAProxy Statistics'
- stats auth  : no authentication
- stats scope : no restriction
盡管“stats enable”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期后果,下面是一個配置案例實例


backend public_www
    server srv1 192.168.1.201:80
    stats enable
    stats hide-version
    stats scope   .
    stats uri     /admin?stats
    stats realm   Haproxy Statistics
    stats auth    admin1:AdMiN123
    stats auth    admin2:AdMiN321


stats hide-version
啟用統(tǒng)計報告并隱藏HAProxy版本報告,不能用于“frontend”區(qū)域,默認情況下,統(tǒng)計頁面會顯示一些有用信息,包括HAProxy的版本號,然后,向所有人公開HAproxy的準確版本號是非常有危險的,因為他能夠版主惡意用戶快速定位版本的缺陷和漏洞,盡管“stats hide-version”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期后果請參照“stats enable”一節(jié)的說明


stats realm
stats realm
啟用統(tǒng)計報告并高精認證領域,不能用于“frontend”區(qū)域,haproxy在讀取realm是會講是做一個單詞,因此,中間的空白字符都必須使用反斜線進行轉(zhuǎn)移。此參數(shù)僅在與“stats auth”配置使用時有意義
:實現(xiàn)HTTP基本認證時顯示在瀏覽器中的領域名稱,用于提示用戶輸入一個用戶名和密碼
盡管“stats realm”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期,后果請參照“stats enable”一節(jié)的說明


stats scope
stats scope {|'.'}
啟用統(tǒng)計報告并限定報告的區(qū)段,不能用于“frontend”區(qū)域,當指定此語句時,統(tǒng)計報告將僅顯示其列舉出區(qū)段的報告信息,所有其他區(qū)段的信息將被隱藏,如果需要顯示多個區(qū)段的統(tǒng)計報告,此語句可以定義多次,需要注意的是,區(qū)段名稱進程僅僅是以字符串比較的方式進行,他不會真檢查指定的區(qū)段是否真正存在
:可以是一個“l(fā)isten”、“frontend”或“backend”區(qū)段的名稱,而“.”則表示stats scope語句所定義的當前區(qū)段
盡管“stats scope”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期后果,請參照“stats enable”一節(jié)的說明


stats auth
stats auth :
啟用帶認證的統(tǒng)計報告功能并授權(quán)一個用戶賬號,不能用于“frontend”區(qū)域
:授權(quán)進行訪問的用戶名
:此用戶的訪問密碼,明文格式
此語句將給予默認設定啟用統(tǒng)計功能報告,并僅允許其定義的用戶訪問,其也可以定義多次以手段多個用戶賬號,可以結(jié)合“stats realm”參數(shù)在提示用戶認證是給出一個領域說明信息,在使用非法用戶訪問統(tǒng)計功能時,其將會響應一個“401 Forbidden”頁面,其認證方式為HTTP Basic認證,密碼傳輸會以明文方式進行,因此,配置文件中也使用存儲明文方式存儲以說明其非保密信息故此不能想用與其他關鍵性賬號的密碼。
盡管“stats auth”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期后果,請參照“stats enable”一節(jié)的說明


stats admin 
atsts admin {if|unless}
在指定的條件滿足時啟用統(tǒng)計報告頁面的管理級別功能,他允許通過web接口啟用或禁用服務器,不過,基于安全的角度考慮,統(tǒng)計報告頁面應該盡可能為只讀的,此外,如果啟用了HAproxy的多進程模式,啟用此管理級別將會可能導致異常行為
目前來說,POST請求方法被限制于僅能使用緩沖區(qū)減去保留之外的空間,因此,服務器列表不能過長,否則,此請求將無法正常工作,因此,建議一次僅調(diào)整少數(shù)幾個服務器,


option httplog
option httplog [clf]
啟用記錄HTTP請求、會話狀態(tài)和計時器的功能
clf:使用CLF格式來代替HAproxy默認的HTTP格式,通常在使用僅支持CLF格式的特定日志分析器時才需要使用此格式
默認情況下,日志輸入格式非常簡陋。因為其僅包括源地址、目標地址和實例名稱、而“option httplog”參數(shù)將會使得日志變得豐富許多,其通常包括但不局限于HTTP請求、連接計時器、會話狀態(tài)、連接數(shù)、捕獲的首部及cookie、“frontend”、“backend”及服務器名稱。當然也包括源地址和端口號等。


option logasap  
no option logasap
啟用或禁用提前將HTTP請求記入日志,不能用于“frontend”區(qū)段。
默認情況下,HTTP請求是在請求結(jié)束時進行記錄以便能夠?qū)⑵湔w輸入時長和字節(jié)數(shù)記入日志,由此,傳較大的對象時,其記入日志的市場可能會略有延遲,“option logasap”參數(shù)能夠在服務器發(fā)送complete首部時及時記錄日志,只不過,此時將不記錄整體傳輸時長和字節(jié)數(shù)。此情形下,捕獲“Content-Length”響應報文來記錄的字節(jié)數(shù)是以一個較好的選擇


option forwardfor
option forwardfor[ except ][ header ][ if-none ]   
允許在發(fā)往服務器的請求首部中插入“X-Forwarded-For”首部
:可選參數(shù),當指定時,源地址為皮至此網(wǎng)絡中的請求都禁用此功能
:可選參數(shù),可使用一個自定義的首部,如“X-Cluster-Client-IP”來代替“X-Forwarded-For”,有些獨特的web服務器的確需要用一個獨特的首部
if-none: 僅在此首部不存在時才會將其添加至請求報文中
HAproxy工作與反向代理模式,其發(fā)往服務器的請求中的客戶端IP均為HAproxy主機的地址而非真正的客戶端地址,這會使得服務器的日志記錄不了真正的請求來源,“X-Forwarded-For”首部則可用于解決此問題,HAproxy可以向每個房網(wǎng)服務器的請求上添加此首部,并以客戶端IP為其value
需要注意的是,HAproxy工作與隧道模式,其僅檢查每一個連接的第一個請求,一次,僅第一個請求報文中被附加此首部,請確保同時使用“option httpclose”、“option forceclose”和“option http-server-close”幾個option,例如




errorfile
errorfile
在用戶請求不存在的頁面時,返回一個頁面給客戶端而非有haproxy生成的錯誤代碼,可用于所有段中
: 指定對HTTP的那些狀態(tài)碼發(fā)回指定的頁面,這里可用的狀態(tài)碼有200、400、403、408、500、502、503和504
:指定用于響應的頁面文件
例如:


errorfile 400 /etc/haproxy/errorfiles/400badreq.http
errorfile 403 /etc/haproxy/errorfiles/403forbid.http
errorfile 503 /etc/haproxy/errorfiles/503sorry.http




errorloc和errorloc302
errorloc
errorloc302
請求錯誤時,返回一個HTTP重定向至某URL的信息,可以用于所有端中
: 指定對HTTP的那些狀態(tài)碼發(fā)回指定的頁面,這里可用的狀態(tài)碼有200、400、403、408、500、502、503和504
:Location首部中指定的頁面位置的具體路徑,可以是在當前服務器上的頁面的相對路徑,也可以使用絕對路徑,需要注意的是,如果URI之神錯誤時禪師某特定狀態(tài)碼信息的話,有可能會導致循環(huán)定向
需要留意的時,這兩個關鍵字都會返回302狀態(tài)碼,浙江使得客戶端使用同樣的HTTP方法獲取指定的URL。對于非GET方法獲取指定的URL,對于非GET方法的場景(如POST)來說會產(chǎn)生問題,因為返回客戶端的URL是不允許使用GET意外的其他方法的,如果的確有這種問題,可以使用errorloc303來返回303狀態(tài)碼給客戶端


 errorloc303
 errorloc303
 : 指定對HTTP的那些狀態(tài)碼發(fā)回指定的頁面,這里可用的狀態(tài)碼有400、403、408、500、502、503和504
  :Location首部中指定的頁面位置的具體路徑,可以是在當前服務器上的頁面的相對路徑,也可以使用絕對路徑,需要注意的是,如果URI之神錯誤時禪師某特定狀態(tài)碼信息的話,有可能會導致循環(huán)定向


五、ACL  


   haproxy的ACL用于實現(xiàn)基于請求報文的首部、響應報文的內(nèi)容或其他的環(huán)境狀態(tài)信息來做出轉(zhuǎn)發(fā)決策,這大大增強了其配置彈性,其配置法則通常非為兩步,首先定義ACL,及定義一個測試條件,而后在條件得到滿足時執(zhí)行某特定的動作,如阻止請求或轉(zhuǎn)發(fā)至某特定的后端,官方文檔(http://cbonte./haproxy-dconv/configuration-1.4.html#7)定義ACL的語法格式如下:


   acl[flags][operator]


   :ACL名稱,區(qū)分字符大小寫,其只能包含大小寫字符、數(shù)字、-(連接線)、_(下劃線)、.(點號)和:冒號,haproxy中,acl可以重名,還可以把多個測試條件定義為一個共同的acl


   : 測試標準,即對什么信息發(fā)起測試,測試方式可以有[flags]指定的標志進行調(diào)整,而有些測試標準也可以需要在其為之前指定一個操作符[operator]


   [flags]:目前haproxy的acl支持的標志位有3個


       -i:不區(qū)分中模式字符的大小寫


       -f:從指定的文件中加載模式


       –:標識符的強制結(jié)束標記,在模式中的字符串像標記符時使用


    :acl測試條件支持的值有以下四類


       整數(shù)或證書范圍:如1024:65535表示從1024到65535,僅支持使用正整數(shù)(如果出現(xiàn)類似小數(shù)的標識,其通常為測試版本),其支持使用的操作符有5個,分別為eq(等于)、ge(大于等于)、gt(大于)、le(小于等于)和lt(小于)


       字符串:支持使用“-i”以忽略字符大小寫,支持使用“”進行轉(zhuǎn)義,如果在模式首部出現(xiàn)了-i,可以在之前使用“–”標識位


       正則表達式:其機制類同于字符串匹配


       IP地址及網(wǎng)絡地址


    同一個acl中可以指定多個測試條件,這些測試條件需要由邏輯操作符指定其關系,條件間的組合測試關系有三種:“與”(默認即為與操作)、“或”(使用“||”操作符和“or”)和“非”(使用“!”操作符)


   常用的測試標準


       5.1 be_sess_rate (integer)


           be_sess_rate(backend) (integer)


           用于測試指定的backend上會話創(chuàng)建的速率(即每秒創(chuàng)建的會話數(shù))是否滿足指定的條件,常用于在指定的backend上的會話速率過高時將用戶請求轉(zhuǎn)發(fā)至另外的backend,或用于阻止攻擊行為。例如:




backend dynamic
    mode http
    acl being_scanned be_sess_rate gt 100
    redirect location /denied.html if being_scanned
      5.2 fe_sess_rate
         fe_sess_rate(backend) (integer)
           用于測試指定的frontend(或當前fortend)上的創(chuàng)建速率是否滿足指定的條件,常用于為frontend指定一個合理的會話創(chuàng)建速率的上限以防止服務器被濫用,例如




frontend mail
    bind :25
    mode tcp
    maxconn 500
    acl too_fast fe_sess_rate ge 50
    tcp-request inspect-delay 50ms
    tcp-request content accept if ! too_fast
    tcp-request content accept if WAIT_END
定律限定入站郵件速率不能大于50封/秒,所有在指定范圍之外的請求都被延時50毫秒


       5.3 hdr


           hdr(header)


           用于測定請求報文中的所有首部或指定首部是否滿足指定的條件,指定首部時,其名稱不區(qū)分大小寫,且在括號“()”中不能有任何多余的空白字符,測試服務器端的響應報文時可以使用shdr()。例如。下面的例子用于測試首部Connection的值是否為close


hdr(Connection) -i close


       5.4 method


           測試HTTP請求報文中使用的方法


       5.5 path_beg


           用于測試請求的URI是否以指定的模式開頭。


1
acl url_static path_beg -i /static /images /javascript /stylesheets
測試URL是個以/static /images /javascript /stylesheets開頭


       5.6 path_end


           用于測試請求的URL是否以指定的模式結(jié)尾


1
acl url_static       path_end       -i .jpg .gif .png .css .js
                                                                     


測試URI是否以.jpg .gif .png .css .js結(jié)尾


       5.7 hdr_beg


           用于測試請求報文的指定首部的開頭部分是否符合指定的模式


1
acl host_static hdr_beg(host) -i img. video. download. ftp.
用于測試請求報文首部中的主機是否已img. video. download. ftp.開頭


      5.8 hdr_beg


           用于測試請求報文的指定首部結(jié)尾是否符合指定的模式




    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    高中女厕偷拍一区二区三区| 国产亚洲精品香蕉视频播放| 国产精品不卡免费视频| 亚洲av成人一区二区三区在线| 欧美日韩亚洲巨色人妻| 国产av一二三区在线观看| 国产原创中文av在线播放| 国产一级内片内射免费看| 东京热加勒比一区二区| 成年女人下边潮喷毛片免费| 亚洲国产av在线观看一区| 午夜视频免费观看成人| 亚洲av日韩一区二区三区四区| 久久人妻人人澡人人妻| 欧美午夜伦理在线观看| 亚洲欧洲精品一区二区三区| 熟女中文字幕一区二区三区| 自拍偷拍一区二区三区| 男女一进一出午夜视频| 精品欧美国产一二三区| 免费精品一区二区三区| 日韩人妻中文字幕精品| 亚洲一区二区精品福利| 精品一区二区三区人妻视频| 东京热加勒比一区二区| 国产亚洲精品俞拍视频福利区| 国产偷拍精品在线视频| 大香蕉大香蕉手机在线视频| 日本东京热加勒比一区二区| 亚洲国产精品肉丝袜久久| 欧美日韩国产亚洲三级理论片| 久草视频这里只是精品| 久久经典一区二区三区| 亚洲男人的天堂久久a| 日韩免费国产91在线| 出差被公高潮久久中文字幕| 国产亚洲午夜高清国产拍精品| 欧美高潮喷吹一区二区| 色欧美一区二区三区在线| 国产又粗又猛又大爽又黄同志| 欧美黄色黑人一区二区|