[:port][param*] 在后端聲明一個server,因此,不能用于defaults和frontend區(qū)段。 <: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 rise fall cookie maxconn maxqueue redir server srv1 192..168.1.202:80 redir http://imageserver. check weight 檢查方法: option httpchk option httpchk option httpchk option httpchk 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 捕獲并記錄指定的請求首部最近一次出現(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” 可以捕獲的請求首部的個數(shù)沒有限制,但每個捕獲最多能記錄64個字符,為了保證同一個frontend中日志格式的統(tǒng)一性,首部捕獲僅能在frontend中定義 capture response header capture response header 捕獲并記錄響應首部。其格式和要點同捕獲的請求首部響應 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”配置使用時有意義 盡管“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ū)段是否真正存在 盡管“stats scope”一條就能夠啟用統(tǒng)計報告,但還是建議設定其他所有的參數(shù),以避免其依賴默認設定而帶來非預期后果,請參照“stats enable”一節(jié)的說明 stats auth stats auth 啟用帶認證的統(tǒng)計報告功能并授權(quán)一個用戶賬號,不能用于“frontend”區(qū)域 此語句將給予默認設定啟用統(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 允許在發(fā)往服務器的請求首部中插入“X-Forwarded-For”首部 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
|
|
來自: waitingnothing > 《Haproxy》