免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

HAProxy配置文件五段結(jié)構(gòu)詳解:從零搭建HTTP負載均衡

HAProxy配置文件五段結(jié)構(gòu)詳解:從零搭建HTTP負載均衡 第一次接觸 HAProxy 的時候大多數(shù)人都是被那堆配置項勸退的。老實說作為 Linux 下應(yīng)用最廣的開源負載均衡器之一HAProxy 的配置文件反而沒那么玄乎——它核心就五段global、defaults、frontend、backend、listen。搞懂它們分別管什么再把幾個高頻參數(shù)吃透基本就能應(yīng)對大部分場景了。這篇文章不聊那些花活只講 haproxy 基礎(chǔ)配置、配置文件結(jié)構(gòu)和幾個最簡單實用的功能適合剛上手或者用了一段時間但一直靠復(fù)制粘貼的朋友。先說清楚 HAProxy 能干什么。它本質(zhì)上是一個基于 TCP 和 HTTP 的高性能反向代理最常干的活就是負載均衡把用戶的請求按照某種策略分發(fā)到后面一組真實服務(wù)器上同時還要負責健康檢查——某臺后端掛了自動把流量摘掉等它恢復(fù)后再加回來。很多團隊也拿它做流量入口的統(tǒng)一收斂點順帶完成簡單的請求路由、訪問控制、監(jiān)控統(tǒng)計。它的特點就一個字穩(wěn)純 C 寫的單進程事件驅(qū)動在普通 x86 服務(wù)器上扛住幾萬并發(fā)并不稀奇配置正確的情況下跑幾年不重啟也沒問題。這篇文章我會用一套完整的 Web 負載均衡配置作為主線把 global、defaults、frontend、backend 四段逐行講清楚再用 listen 段演示一個最簡單的 TCP 轉(zhuǎn)發(fā)最后把平時最容易踩的坑列出來。下文中所有配置均基于 HAProxy 2.4 及更新版本較老版本個別參數(shù)略有差異但主體框架完全一致老版本用戶在用到具體參數(shù)時留意一下版本差異即可。1. HAProxy 配置文件的整體框架與定位1.1 為什么 HAProxy 的配置文件要分成五段理解 HAProxy 的配置最關(guān)鍵的一步是理解它的設(shè)計哲學(xué)接收端和轉(zhuǎn)發(fā)端分開描述。Nginx 里你經(jīng)常在一個 location 或 server 塊里既寫監(jiān)聽的端口又寫轉(zhuǎn)發(fā)的目標但 HAProxy 偏不這么干它把“怎么接流量”和“往哪兒轉(zhuǎn)發(fā)”拆成兩個獨立對象也就是 frontend 和 backend。這樣的拆分有兩個顯而易見的好處。第一多個 frontend 可以共用同一個 backend。比如你有一個 80 端口的 HTTP 入口和一個 443 端口的 HTTPS 入口兩個入口收到的流量都可以轉(zhuǎn)發(fā)到同一組 Web 服務(wù)器上只在 frontend 這塊分別定義各自的監(jiān)聽方式后端邏輯完全復(fù)用。第二一個 frontend 也可以根據(jù) ACL 規(guī)則路由到不同的 backend。比如同一個入口進來的流量路徑帶 /api/ 的轉(zhuǎn)發(fā)到接口服務(wù)集群其余走靜態(tài)頁面集群這只需要在 frontend 里加幾條規(guī)則不用動后端定義。listen 段則是把 frontend 和 backend 合并在一起寫的老式風格適合簡單場景一個端口進來直接轉(zhuǎn)到一個后端池沒有復(fù)雜的路由需求。它寫起來確實省事但一旦場景變復(fù)雜——比如多個不同端口、多個目標組——用 listen 會導(dǎo)致配置迅速膨脹且難以閱讀。我的建議是學(xué)習(xí)階段兩種都要會看新項目一律用 frontend/backend 分離式寫法。還有兩個特殊的段global 和 defaults。global 是進程級配置管的是 HAProxy 自身的行為比如運行身份、最大連接數(shù)、日志怎么發(fā)defaults 則是給后面所有 frontend/backend/listen 提供默認值的“模板段”里面寫的參數(shù)會被繼承后面的段如果重復(fù)定義同名參數(shù)就覆蓋它。理解繼承關(guān)系很重要這也是很多新手排查配置的盲區(qū)——你明明沒在 backend 里寫某項配置但它就是從 defaults 里繼承來的。1.2 五大配置段的職責邊界與繼承關(guān)系把五大段的職責邊界理清楚配置文件就看懂了一半配置段核心職責典型參數(shù)示例global進程運行級別非事務(wù)性daemon, user, group, maxconn, logdefaults提供全局默認參數(shù)供各段繼承mode, timeout, option, retriesfrontend流量入口定義監(jiān)聽端口與路由規(guī)則bind, use_backend, default_backendbackend后端服務(wù)器池定義轉(zhuǎn)發(fā)目標與策略server, balance, check, cookielisten入口后端合并定義適用簡單場景bind, server, mode, balance注意 global 段是特殊的它不受 defaults 的繼承機制影響因為它壓根就不是一個“流量處理單元”它是一個獨立進程的描述。defaults 的繼承對象是 frontend、backend、listen 這三個段。比如你在 defaults 里寫了timeout connect 5s那么后面所有的段即使自己不寫 timeout也會自動帶上這個值。如果你在某個 backend 里改了timeout connect 10s那只有這個 backend 用新值其他段仍然用 defaults 里的 5s。這段繼承邏輯實操中非常有用是配置精簡的核心。一個規(guī)范的單機配置文件通常就是 global 段十幾行 defaults 段十行左右 每個業(yè)務(wù)一個 frontend 一個 backend加起來四五十行就夠跑一個像樣的負載均衡了。不要刻意寫長HAProxy 配置的價值不在行數(shù)而在每個參數(shù)是不是真正合理。需要提醒的是defaults 里盡量只放真正的“通用默認項”別把業(yè)務(wù)相關(guān)的參數(shù)塞進去。比如有的人在 defaults 里寫balance leastconn結(jié)果后面所有不同業(yè)務(wù)的 backend 都默認用了這個算法但有的業(yè)務(wù)其實適合 roundrobin就容易出現(xiàn)流量分不均勻的怪現(xiàn)象。defaults 是兜底不是萬能池。2. 核心配置參數(shù)詳解從進程參數(shù)到 HTTP 功能搞清結(jié)構(gòu)之后接下來就要鉆進細節(jié)里。HAProxy 的配置參數(shù)很多但基礎(chǔ)階段真正高頻使用的其實就那一二十個。我按使用場景把它們分成了四組每組都有實際意義和踩坑點逐組講透。2.1 global 段進程級參數(shù)與運行性能調(diào)優(yōu)global 段的參數(shù)不算多但每一個都影響運行方式。最常用的幾個如下global log 127.0.0.1:514 local0 info chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 80000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats mode 600 level admin逐行解釋一下關(guān)鍵項。log指定日志發(fā)送地址和 facility。這里寫的127.0.0.1:514 local0 info表示把日志通過 UDP 發(fā)給本機的 rsyslog 端口facility 用 local0日志級別 info。實操中很多人忽略這行導(dǎo)致出問題時啥都查不到。我強烈建議一開始就配上哪怕沒有獨立日志服務(wù)器發(fā)到本機 rsyslog 也足夠用了。日志是排查問題的第一手資料沒有日志的負載均衡等于盲人摸象。maxconn單進程最大連接數(shù)。這是一個在性能和資源之間取平衡的值不要盲目調(diào)大。它受限于文件描述符上限Linux 下單個進程默認 fd 上限通常是 1024你需要先在系統(tǒng)層面調(diào)大ulimit -n否則配置再大也只是個擺設(shè)。一個粗略的計算公式是maxconn × 每個連接約消耗 20~40KB 內(nèi)存 若干 fd。如果機器內(nèi)存是 16G按 40KB 一個連接算maxconn 設(shè)到 30 萬左右理論上可以但實際還要留出系統(tǒng)和其他進程的余量所以我一般建議按可用內(nèi)存 / 64KB的 60%~70% 來估算寧可保守一點。daemon讓 HAProxy 以后臺 daemon 方式運行這是生產(chǎn)環(huán)境的標準姿勢。沒有這行的話HAProxy 會在前臺運行終端一關(guān)就退出了。調(diào)試的時候你反而可以臨時去掉 daemon 用前臺模式跑方便直接看輸出但正式部署一定要加回來。stats socket這個別小看。它暴露了一個 Unix socket讓運維員可以在本機執(zhí)行echo show info; show stat | socat stdio /var/lib/haproxy/stats這種命令直接查詢運行數(shù)據(jù)。配合level admin還可以在線啟用/停用服務(wù)器、調(diào)整權(quán)重是免重啟運維的核心入口。生產(chǎn)環(huán)境我強烈建議配置這個后面排查和做操作都會爽很多。chroot和user/group是安全相關(guān)項分別把進程困在指定目錄里和降權(quán)運行?;A(chǔ)的配置階段照抄即可但要注意 chroot 的目錄必須存在且 HAProxy 用戶有權(quán)限訪問否則啟動會直接報錯。2.2 defaults 段時間參數(shù)與通用選項的合理預(yù)設(shè)defaults 段是配置文件的“聯(lián)合作戰(zhàn)地圖”模版。我常用的基礎(chǔ)配置如下defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 5000挑重點講。mode http表示默認以七層 HTTP 模式工作HAProxy 會解析請求報文可以做 URI 級的轉(zhuǎn)發(fā)、ACL、cookie 保持等功能。如果你的場景是純 TCP 轉(zhuǎn)發(fā)比如數(shù)據(jù)庫、Redis就要在對應(yīng)的 frontend/backend 里改成mode tcp。注意 mode 是可以按段覆蓋的defaults 里寫 http某個 listen 段里寫 tcp 是合法的。option httplog開啟 HTTP 請求日志它會記錄請求方法、URI、狀態(tài)碼、響應(yīng)字節(jié)數(shù)、耗時等信息。沒有這個選項日志里就只有 TCP 層的信息排查業(yè)務(wù)問題幾乎沒法用。option dontlognull用于過濾掉那些沒有產(chǎn)生任何數(shù)據(jù)的空連接——很多端口掃描或監(jiān)控探測會產(chǎn)生這種連接不打日志能省不少磁盤。option forwardfor是給后端的真實 IP 傳遞用的。HAProxy 作為代理時后端服務(wù)器看到的所有請求來源都是 HAProxy 自身的 IP這會導(dǎo)致后端拿不到客戶端的真實地址。開了這個選項后HAProxy 會往請求頭里追加X-Forwarded-For字段后端用這個字段還原客戶端 IP。做日志分析、限流、黑白名單都靠它。except 127.0.0.0/8的意思是本機發(fā)來的請求不加這個頭防止某些內(nèi)部應(yīng)用來源信息被錯誤改寫。option redispatch在高可用場景比較重要。當某個后端服務(wù)器因為資源耗盡等原因?qū)е聲挓o法完成時HAProxy 可以把這個請求重新調(diào)度到其他健康的服務(wù)器上避免用戶一直卡在故障機上。代價是某些依賴會話一致性的應(yīng)用未做會話共享的可能會出現(xiàn)狀態(tài)錯亂所以要不要開需要結(jié)合業(yè)務(wù)判斷但對大部分無狀態(tài) Web 服務(wù)來說是值得開的。timeout 系列是 defaults 里的重頭戲也是新手最容易牽連踩坑的地方。行為邏輯timeout connect與后端服務(wù)器建立 TCP 連接的超時時間。這個值不要設(shè)太大因為正常的局域網(wǎng)連接都在幾十毫秒內(nèi)完成設(shè) 10s 已經(jīng)非常保守了。如果后端網(wǎng)絡(luò)質(zhì)量差建議排查鏈路而不是盲目調(diào)大這個值。timeout client客戶端與 HAProxy 之間的空閑超時時間。注意這說的是“空閑連接”的超時——也就是客戶端發(fā)送完請求后長時間沒有再發(fā)送下一個請求或讀取響應(yīng)時HAProxy 會斷開連接。設(shè)太短會導(dǎo)致長輪詢、WebSocket 等連接被意外斷開設(shè)太長又容易積壓一堆半死不活的連接。timeout server與后端服務(wù)器之間的空閑超時時間。含義和 client 對應(yīng)但作用于 HAProxy 到后端那一段。如果后端程序處理請求特別慢比如某些報表類的同步接口要跑幾十秒這個值就需要相應(yīng)調(diào)大否則請求剛算好結(jié)果就被掐斷了。timeout http-request接收完整 HTTP 請求頭的超時時間。這個值建議設(shè)小一點因為它主要用來防慢速攻擊——惡意客戶端一點一點地發(fā)請求頭把連接拖死。10s 已經(jīng)夠?qū)捲US脩舨粫ǔ^幾秒鐘填一個請求頭。timeout http-keep-aliveHTTP 長連接的空閑超時時間。客戶端用 keep-alive 維持連接、準備發(fā)下一個請求時空閑超過這個值就會被斷開。有個容易誤會的點timeout client和timeout server設(shè)的是“空閑超時”不是硬性的最長請求時間。比如 timeout server 1m不是說后端處理請求超過 1 分鐘就會被殺而是說后端和 HAProxy 之間如果超過 1 分鐘沒有任何數(shù)據(jù)交互這個連接就會被回收。理解這個區(qū)別很重要否則你會在一堆長耗時請求的場景下糾結(jié)為什么明明設(shè)了很大的值還是斷連。2.3 frontend 段流量入口與基礎(chǔ)路由規(guī)則frontend 的職責是“接住流量”所以配置的核心是監(jiān)聽地址和路由決策。看一個最簡單的 HTTP 入口frontend web_front bind 0.0.0.0:80 mode http default_backend web_serversbind 0.0.0.0:80表示監(jiān)聽本機所有網(wǎng)卡的 80 端口。如果你只希望內(nèi)網(wǎng)網(wǎng)卡接收流量可以寫成bind 192.168.1.10:80這樣外網(wǎng)網(wǎng)卡即使到達了也不會進這個 frontend等于從入口做了隔離。default_backend是兜底路由前面的請求如果沒匹配到任何別的規(guī)則就統(tǒng)一走這個后端池。實際生產(chǎn)中使用 HTTP 入口一般會加一些簡單的 ACL 路由比如根據(jù)路徑區(qū)分 API 請求和靜態(tài)資源frontend web_front bind 0.0.0.0:80 mode http acl api_path path_beg /api/ use_backend api_servers if api_path default_backend web_servers這里acl定義了一個名為 api_path 的規(guī)則條件是請求路徑以 /api/ 開頭。use_backend根據(jù) ACL 規(guī)則選擇對應(yīng)后端池不滿足就落到 default_backend。這個模式在微服務(wù)網(wǎng)關(guān)和前后端分離架構(gòu)里非常常見基本可以覆蓋大多數(shù)路由需求?;A(chǔ)階段掌握bind、acl、use_backend、default_backend就夠了。ACL 的匹配字段很多域名、URL、Headers、來源 IP、HTTP 方法等后面有需要再看具體字段的語法這里先不做擴展。另外frontend 的名字是可以隨便起的比如 web_front、api_front但同一個文件里不能重復(fù)。名字起得規(guī)范一些多人協(xié)作時能把閱讀成本降很多。2.4 backend 段后端服務(wù)器池、權(quán)重與健康檢查backend 是真正干活的段——定義一組服務(wù)器以及負載均衡策略。基礎(chǔ)模板如下backend web_servers balance roundrobin option httpchk GET /health http-check expect status 200 server web1 10.0.0.11:8080 weight 100 check inter 3s fall 3 rise 2 server web2 10.0.0.12:8080 weight 100 check inter 3s fall 3 rise 2 server web3 10.0.0.13:8080 backup check inter 3s fall 3 rise 2balance roundrobin是最常用也最好理解的負載均衡算法——按順序輪流把請求分配給后端服務(wù)器。它適合后端性能大致相同的場景。如果后端機器性能差異大可以用balance leastconn新建連接時優(yōu)先分給當前活躍連接數(shù)最少的服務(wù)器適合長連接和請求處理時間不穩(wěn)定的場景。還有一個常用的balance source它會根據(jù)客戶端 IP 做哈希同一個 IP 的請求總是落到同一個后端——對會話保持要求高又沒有共享 session 的老系統(tǒng)比較友好。三個算法的適用場景我整理了一張表算法核心邏輯適用場景注意點roundrobin輪流分發(fā)后端性能近似、連接多為短連接最通用無腦首選leastconn挑選活躍連接數(shù)最少者請求耗時差異大、長連接較多需要配合健康檢查使用source按客戶端 IP 哈希需要 IP 級別的會話粘滯后端增刪節(jié)點會導(dǎo)致哈希漂移weight表示權(quán)重范圍 1~256默認 1。比如一臺新機器剛上線可以先給個較小權(quán)重觀察表現(xiàn)穩(wěn)定后再調(diào)正常。注意動態(tài)調(diào)整權(quán)重有兩種方式一種改配置 reload一種通過前面的 stats socket 執(zhí)行set weight web_servers/web1 50在線調(diào)整。后者對線上流量無感是非常實用的運維技巧。check參數(shù)是健康檢查的開關(guān)。沒有這個參數(shù)HAProxy 會把請求送到一個已經(jīng)宕機的服務(wù)器上然后超時報錯。加上check后HAProxy 會按照inter 3s的間隔、每 3 秒對后端做一次健康探測。fall 3表示連續(xù) 3 次探測失敗就把節(jié)點標記為 DOWNrise 2表示連續(xù) 2 次成功后重新標記為 UP。這兩個值要按業(yè)務(wù)敏感度調(diào)后端重啟速度快的可以設(shè)小一點減少流量的空閑時間后端啟動慢比如 Java 應(yīng)用冷啟動需要幾十秒的rise 就要設(shè)大一點防止剛起來還沒就緒就被塞流量。option httpchk GET /health配合http-check expect status 200把健康檢查從簡單的 TCP 端口探測升級成 HTTP 級別的探測。這非常關(guān)鍵——一個后端進程可能在正常運行但業(yè)務(wù)邏輯已經(jīng)無法響應(yīng)了比如數(shù)據(jù)庫連不上、內(nèi)部線程池耗盡純 TCP 探測根本發(fā)現(xiàn)不了只有 HTTP 探測能真實反映業(yè)務(wù)健康度。幾乎所有面向用戶的 Web 服務(wù)都應(yīng)該在后端應(yīng)用里實現(xiàn)一個返回 200 狀態(tài)的 /health 接口然后在這里配置對應(yīng)的健康檢查。沒有健康檢查的負載均衡等于把命運交給了運氣。還有一個backup參數(shù)值得了解加上后這臺服務(wù)器只在其他非 backup 節(jié)點都不可用時才接收流量。這是一種冷備策略。注意 backup 節(jié)點平時不接流量健康檢查照常執(zhí)行一旦切換到它它會默默抗住所有流量所以要對它的處理能力有清晰認知。別把它當普通節(jié)點用。3. 從零搭建一個 HTTP 負載均衡的完整配置配置文件每個段都過了基礎(chǔ)的關(guān)現(xiàn)在把它們拼起來完整走一遍實操流程。假設(shè)場景你有三臺后端 Web 服務(wù)器IP 分別是 10.0.0.11、10.0.0.12、10.0.0.13端口都是 8080它們對外提供相同的 HTTP 服務(wù)?,F(xiàn)在要在前臺的一臺 2C4G 的 Linux 服務(wù)器上部署 HAProxy監(jiān)聽 80 端口實現(xiàn)負載均衡、健康檢查、監(jiān)控頁面這三個基礎(chǔ)功能。3.1 環(huán)境準備安裝與目錄規(guī)范先裝 HAProxy。Debian/Ubuntu 系列直接用系統(tǒng) apt 源安裝apt install -y haproxyCentOS/RHEL 系列yum install -y haproxy系統(tǒng)包管理安裝的版本不一定是最新的但勝在穩(wěn)定和干凈適合不折騰的生產(chǎn)環(huán)境。安裝完成后配置文件默認在/etc/haproxy/haproxy.cfgHAProxy 進程以 haproxy 用戶運行。安裝后先驗證一下版本不同主版本的參數(shù)兼容性有差異haproxy -v看到輸出后記下版本號后面查閱文檔時用的都是對應(yīng)版本的行為。我下面展示的配置兼容 1.8 到 2.x 的范圍內(nèi)常用的參數(shù)但如果你用的是 3.x 新版?zhèn)€別寫法要參照官方文檔調(diào)整。另外一個容易被忽略的目錄管理建議把/etc/haproxy下的配置做成haproxy.cfg主文件加多個獨立片段文件的方式主文件里用include /etc/haproxy/conf.d/*.cfg引入。這樣每個業(yè)務(wù)模塊一個文件互不干擾后續(xù)維護時找一個業(yè)務(wù)改一個文件不會在巨型單文件里反復(fù)翻找。3.2 完整配置逐行注釋版下面就是整合后的完整配置。這個配置我直接在生產(chǎn)環(huán)境里驗證過重點參數(shù)都有注釋global log 127.0.0.1:514 local0 info maxconn 20000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats mode 600 level admin defaults mode http log global option httplog option dontlognull option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s frontend web_front bind 0.0.0.0:80 default_backend web_servers # 可選啟用完整統(tǒng)計頁面 stats enable stats uri /haproxy-stats stats realm HAProxy\ Statistics stats auth admin:YourStrongPass stats refresh 30s stats admin if LOCALHOST backend web_servers balance roundrobin option httpchk GET /health http-check expect status 200 server web1 10.0.0.11:8080 weight 100 check inter 3s fall 3 rise 2 server web2 10.0.0.12:8080 weight 100 check inter 3s fall 3 rise 2 server web3 10.0.0.13:8080 backup check inter 3s fall 3 rise 2一段一段說。global 里maxconn 20000這是一臺 2C4G 服務(wù)器比較合理的估算值。硬要算的話按每個連接約 30KB 內(nèi)存值20000 個連接最多占用約 600MB 內(nèi)存加上進程本身和系統(tǒng)開銷4G 內(nèi)存夠用。實際情況是 Web 短連接場景下同時到達 2 萬的連接數(shù)已經(jīng)是很大的并發(fā)量了初期的服務(wù)完全不需要設(shè)更高。defaults 里的參數(shù)在上面已經(jīng)全部解釋過不再重復(fù)。注意這臺前臺的 80 端口壓力不會太大所以 timeout 系列我都給了比較中庸的值如果想調(diào)優(yōu)再根據(jù)業(yè)務(wù)特征微調(diào)。frontend 段增加了一個統(tǒng)計功能。stats enable開啟頁面stats uri /haproxy-stats指定訪問路徑stats auth指定訪問用戶名和密碼stats refresh 30s表示頁面每 30 秒自動刷新。訪問http://前臺IP/haproxy-stats就能看到各后端的實時狀態(tài)包括當前連接數(shù)、會話總數(shù)、健康狀態(tài)等。這是個非常實用的運維頁面哪怕不做監(jiān)控系統(tǒng)集成手動看一眼也比猜強得多。stats admin if LOCALHOST限制只有本機訪問時才允許通過頁面修改后端狀態(tài)防止生產(chǎn)環(huán)境被人惡意操作。這里有個細節(jié)要提醒stats uri的路徑不要和業(yè)務(wù)路徑?jīng)_突。如果業(yè)務(wù)里剛好有/haproxy-stats這個路徑那就會被統(tǒng)計頁“劫持”。所以在規(guī)劃路徑時建議選一個業(yè)務(wù)永遠不會用到的路徑或者直接在文件名上加個隨機字符串前綴。backend 的三臺服務(wù)器中web1、web2 是正常節(jié)點web3 是 backup 冷備。健康檢查用的是GET /health后端應(yīng)用需要實現(xiàn)這個接口正常時返回 200異常時返回非 200 狀態(tài)碼HAProxy 就會把節(jié)點自動摘除。3.3 配置校驗、啟動與常見啟動問題配置寫完后先做語法校驗再啟動。這個習(xí)慣極其重要不要跳過haproxy -c -f /etc/haproxy/haproxy.cfg-c表示僅檢查配置輸出提示說明配置有效Configuration file is valid如果配置里有錯誤它會明確打印出錯的參數(shù)和行號。這個校驗操作是零成本的幾秒鐘的事卻能把大量奇葩問題攔在重啟之前。校驗通過后有兩種啟動方式。用 systemd 管理systemctl restart haproxy systemctl status haproxy另一種方式是直接以前臺模式跑一下做快速驗證尤其是排查啟動時的問題非常方便haproxy -f /etc/haproxy/haproxy.cfg前臺運行的好處是日志直接打到終端啟動報錯一目了然。確認沒問題再CtrlC停掉改用 systemd 正式啟動。啟動后立刻做三件事第一驗證端口監(jiān)聽。ss -lntp | grep :80確認 80 端口已被 HAProxy 監(jiān)聽。第二驗證負載均衡。從本機用 curl 連續(xù)請求幾次后端接口觀察統(tǒng)計頁面的各節(jié)點請求數(shù)是否大致均勻增長。如果全跑到一臺機器上八成是算法配置有誤或健康檢查把大部分節(jié)點標 DOWN 了要看統(tǒng)計頁確認。第三驗證健康檢查。停掉其中一臺后端的 Web 服務(wù)等待約 10 秒覆蓋 inter 3s × fall 3 的周期再到 HAProxy 統(tǒng)計頁上看該節(jié)點應(yīng)該已經(jīng)變成紅色 DOWN 狀態(tài)。此時繼續(xù)發(fā)起請求流量只分布在剩余健康節(jié)點上。重啟這臺后端服務(wù)后等待 rise 2 × inter 3s 周期節(jié)點恢復(fù) UP流量自動重新分布。這個驗證過程建議每次變更配置后都做一遍防止配置在“看起來正?!钡臓顟B(tài)下對故障毫無反應(yīng)。4. 用 listen 段實現(xiàn)一個最簡單的 TCP 轉(zhuǎn)發(fā)前面講的都是 HTTP 層面的負載均衡但 HAProxy 最初的優(yōu)勢其實在于 TCP 層的四層轉(zhuǎn)發(fā)能力。它的性能天花板很高很多團隊用它來轉(zhuǎn)發(fā) MySQL、Redis、各種自研 TCP 協(xié)議流量效果同樣出色。4.1 listen 段寫法和適用場景當場景非常簡單——一個端口進、一個端口出、不需要復(fù)雜的路由判斷——listen 段是最低成本的方案??匆粋€經(jīng)典例子把本機的 3306 端口流量轉(zhuǎn)發(fā)到兩臺數(shù)據(jù)庫服務(wù)器上實現(xiàn) MySQL 的讀寫分離或高可用入口這里以讀流量均衡為例listen mysql_front bind 0.0.0.0:3306 mode tcp balance roundrobin option tcplog server db1 10.0.0.21:3306 weight 100 check inter 5s fall 3 rise 2 server db2 10.0.0.22:3306 weight 100 check inter 5s fall 3 rise 2兩行的體量就完成了一個四層 TCP 負載均衡。mode tcp告訴 HAProxy 不要解析上層協(xié)議直接把 TCP 流量按字節(jié)流透傳開銷極小。這里option tcplog替代了 HTTP 場景的 httplog記錄 TCP 層的連接信息。listen 段的寫法在結(jié)構(gòu)上的角色是 frontend 和 backend 的合體bind 定義入口server 定義目標池平衡策略直接寫在同一個塊里。適用場景就是入口和目標都唯一的簡單轉(zhuǎn)發(fā)如果你的場景里有多個不同入口要轉(zhuǎn)到不同目標還是用 frontend/backend 分離結(jié)構(gòu)更清晰。4.2 tcp 模式下的健康檢查細節(jié)TCP 模式的健康檢查默認是純 TCP 連接探測HAProxy 去嘗試連一下后端的 IP:端口能連上就算健康。對 MySQL 來說這個探測方式夠用——如果能建立 TCP 連接通常意味著 mysqld 進程在監(jiān)聽端口但如果 MySQL 服務(wù)還在但業(yè)務(wù)層面已經(jīng)卡死純 TCP 探測就會誤判為健康。進階做法是用更精確的業(yè)務(wù)級探測。比如 MySQL 場景可以配置option mysql-check user haproxy_check它會用指定的 MySQL 賬號連接一次后端用真實的認證流程做健康檢查這比 TCP 端口探測可靠得多。類似的還有 Redis 的option redis-check、PostgreSQL 的option pgsql-check。各數(shù)據(jù)庫場景的健康檢查做對了之后故障切換的準確率會提升一個量級。另外注意 TCP 模式下沒有option forwardfor這類 HTTP 頭操作后端的客戶端 IP 獲取方式不能在 HAProxy 層解決只能在業(yè)務(wù)應(yīng)用層自行記錄對端地址此時對端地址就是 HAProxy 的 IP無法直接還原真實客戶端 IP。如果你的業(yè)務(wù)必須拿到真實客戶端 IP建議改用 proxy protocol這個是另一個進階話題基礎(chǔ)階段先了解有這個解決路徑即可。5. 常見問題與排查技巧實錄HAProxy 本身運行極穩(wěn)定真正的故障大多來自配置不當或周邊環(huán)境。下面這些問題是我實操中遇到頻率最高的每一個都有具體的現(xiàn)象和排查路徑。5.1 配置正確但啟動失敗端口權(quán)限與語法錯誤“配置文件明明校驗過了怎么啟動還是失敗”這是我被問過最多的問題之一。校驗通過只能說明語法沒有基本錯誤很多運行時問題需要啟動才會暴露。最常見的是非 root 用戶綁定 80 或 443 端口失敗。Linux 約定 1024 以下的端口只有 root 才能綁定HAProxy 默認以 haproxy 用戶運行如果 bind 了 80 端口又沒有配置特權(quán)啟動會提示Permission denied。解決辦法有幾種最常見的是保持 bind :80 寫法然后讓 HAProxy 以 root 身份啟動后切換到 haproxy 用戶global 里的 user/group 配置會在綁定完端口后才生效也可以加setcap cap_net_bind_serviceep /usr/sbin/haproxy給可執(zhí)行文件單獨授權(quán)但這在部分系統(tǒng)上需要額外配置。最簡單穩(wěn)妥的方式是讓 HAProxy 先以 root 啟動綁定端口后再切換到低權(quán)限用戶這也是全局配置里推薦的標準姿勢。另一個坑是配置文件里殘留了 Windows 換行符\r\n。把文件從 Windows 機器上編輯后傳到服務(wù)器上HAProxy 解析到行尾的\r就會報格式錯誤或參數(shù)異常。解決方式是用sed -i s/\r$// /etc/haproxy/haproxy.cfg清洗一遍再校驗。還有一個隱蔽的坑include引入的片段文件里如果定義了重名的 frontend 或 backend 名字啟動時會直接報duplicate name。這種問題在多人協(xié)作時尤其容易踩建議每個業(yè)務(wù)的配置文件頂部都寫清楚業(yè)務(wù)名和占用端口做一層清單登記從根源上避免撞名。5.2 能啟動但轉(zhuǎn)發(fā)不正常健康檢查引發(fā)的“靜默故障”很多“奇怪”的轉(zhuǎn)發(fā)問題本質(zhì)上都是健康檢查沒配好。最典型的場景HAProxy 啟動了端口也監(jiān)聽了但請求梭到后端全部 503 或 504。查統(tǒng)計頁往往能看到節(jié)點狀態(tài)是 DOWN。排查思路分三步。第一步確認后端的 /health 接口是否真的返回 200。有的應(yīng)用把健康檢查路徑寫錯了比如后端實際是/actuator/health配置里卻寫成/health返回 404HAProxy 根據(jù)http-check expect status 200判斷為不健康節(jié)點被摘除流量自然全掛。第二步確認 HAProxy 到后端的網(wǎng)絡(luò)是否通。用telnet 10.0.0.11 8080手動測試。第三步確認健康檢查超時時間是否合理。timeout check如果設(shè)得太短比如 1s而健康檢查接口本身響應(yīng)較慢例如要查數(shù)據(jù)庫狀態(tài)需要 2s那每次探測都超時節(jié)點會反復(fù)抖動在 UP/DOWN 之間流量時通時斷。這種抖動比完全 DOWN 更折磨人因為它表現(xiàn)成偶發(fā)的 502非常難定位。我自己調(diào)試這類問題最常用的伎倆是開日志看。把 rsyslog 配好然后請求幾次出問題的接口去 /var/log/haproxy.log 里看那一行日志的狀態(tài)碼和耗時基本能判斷出問題出在 HAProxy 本身還是后端。日志里如果顯示后端返回 503問題大概率在后端如果顯示連接超時問題大概率在 HAProxy 到后端這條鏈路上。5.3 流量分布不均算法選擇與節(jié)點狀態(tài)排查流量分布不均是另一個高頻問題。你配置了 roundrobin但統(tǒng)計頁上每個節(jié)點的流量卻有明顯的傾斜甚至全跑在同一臺上。第一件要查的事那臺“偏瘦”的節(jié)點是不是處于 DOWN 或 MAINT 狀態(tài)。MAINT 表示節(jié)點被管理員手動停用或正在維護它不會接任何流量觀察這個狀態(tài)首先要看是不是有人通過 stats 頁面或 socket 執(zhí)行了 disable。第二件要查的事后端節(jié)點是否真的在 CHECK 狀態(tài)。如果配置里漏寫了check參數(shù)HAProxy 默認不會對這個節(jié)點做健康檢查但這反而會讓流量正常發(fā)過去——除非這臺機器本身都已經(jīng)宕機了。如果一臺節(jié)點已經(jīng)掛了但沒有配 checkHAProxy 還是會固執(zhí)地把流量往它上面發(fā)表現(xiàn)就是一部分請求超時、一部分成功。第三件事才是回顧算法本身。roundrobin 在連接數(shù)少時表現(xiàn)可能顯得“不均勻”——它按請求輪轉(zhuǎn)但如果客戶端使用了 keep-alive連接超時前會連續(xù)復(fù)用同一個后端連接長時間看統(tǒng)計頁就發(fā)現(xiàn)某些節(jié)點連接數(shù)特別多。這不是配置錯誤而是連接復(fù)用的正常現(xiàn)象。如果你希望更均勻可以把模式改成leastconn或者減小timeout http-keep-alive強制更頻繁地建立新連接。5.4 連接頻繁斷開或超時timeout 參數(shù)的全鏈路思維和 timeout 相關(guān)的問題排查時一定要有“全鏈路”視角。一次完整請求經(jīng)過的鏈路是客戶端 ? HAProxy ? 后端。任何一個環(huán)節(jié)的空閑超時都可能掐斷連接但表現(xiàn)往往都集中在前后端兩側(cè)的服務(wù)端日志里很難直接看清。舉例說明某業(yè)務(wù)是前端頁面定期向后端輪詢數(shù)據(jù)間隔 20 秒。如果timeout client設(shè)成 10s那么頁面發(fā)起下一次輪詢時客戶端發(fā)現(xiàn)之前的空閑連接早被 HAProxy 回收了于是重新走 TCP 握手建立新連接。這個現(xiàn)象本身不是錯誤但會讓網(wǎng)絡(luò)連接數(shù)量持續(xù)增高。如果后端的應(yīng)用框架比較陳舊頻繁重連時會積累 TIME_WAIT日積月累可能導(dǎo)致端口耗盡。這類問題的排查思路是到統(tǒng)計頁看每個節(jié)點的活躍連接數(shù)再結(jié)合實際業(yè)務(wù)的長連接間隔反推 timeout 是否合理。還有一類和 timeout 相關(guān)的“事故現(xiàn)場”后端程序臨時卡頓導(dǎo)致某臺節(jié)點積壓了大量慢請求這些請求的處理時間超過了timeout serverHAProxy 直接把后端連接斷開客戶端收到 504。后端恢復(fù)后積壓的請求又瞬間全部集中到它身上引發(fā)雪崩。這種場景下合理做法是配合隊列和時間參數(shù)雙重限制在健康檢查層面提前摘除“亞健康”節(jié)點而不是單純調(diào)大 timeout 去硬扛。不過這個話題屬于高可用調(diào)優(yōu)范疇基礎(chǔ)階段先把每個 timeout 的語義理解到位遇到問題時能做到準確定位就算達標了。寫在最后的一點經(jīng)驗這套配置跑熟之后HAProxy 在項目里基本就是個“透明但可靠”的存在了。不要急著上那些花哨功能先把負載均衡、健康檢查、日志、監(jiān)控頁這四個基礎(chǔ)能力用扎實日常運維就會輕松一大截。我個人在實際操作中養(yǎng)成的習(xí)慣是每次改完配置先執(zhí)行一遍haproxy -c -f校驗然后立刻看日志確認新配置對流量沒有異常影響。這個習(xí)慣幫我擋掉了不少線上事故建議你也試試。下一篇文章可以聊 ACL 規(guī)則和高級路由到時候見。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青青草护士中出内射-欧美电影在线天堂新版| 国产日韩欧美性生活| 99热久| 啪啪视频99| 综合一区二区三区| 狠狠色狠狠操| www.激情五月天com| 亚洲人人操| 91碰碰| 色欲AV导航| 成人在线日韩| 日本3级片偷拍网站| 色五月婷婷7777| 色综合久久88色综合天天看| 激情五月天在线视频| 久热伊人| 五月婷婷色影院| 欧美午夜乱妇午夜福利| 天天操夜夜操| 精品人妻伦九区久久AAA片| 99热只有这里有精品| 婷婷5月色| 色色综合激情| 青青日韩| 丁香熟女乱| 丁香久久| 俺去也五月| 婷婷五月天av| 日本色五月| 五月婷婷婷丁香播| 久久多色| 97精品综合久久| 爱婷婷都市激情| 欧美性丁香色色五月天| 国产精品蜜臀99| 婷丁香久综合| 天天婷婷天天| 另类综合网| 综合在线网| 五月婷在线观看| 97碰在线免费观看| 精品牛仔裤超碰| 色综合女人99| 99精品久久久久| 男人的天堂99| …亚洲黄色在线播放日韩、av中文a…| 美女婷婷激情亚洲| 免费观看2018www黄色操逼网站| 岛国在线观看91| 欧美顶级少妇做爰HD| www.五月丁香| 99久久国产宗和精品1上映| 久久丁香五月天| 亚洲人妻av| 免费黄色视频网址| 国产做爰视频免费播放| 亚洲天堂有码| 超碰激情网| 91碰碰视频| 五月天婷婷色色| 色五月综合网| 第六色在线| 激情激情激情网| 午夜不卡成人一区二区| 亚洲va成人va成人va在线观看| 激情网五月| www.minyis.com【JT】实力收量可预付QQ2101460746 | 九九综合| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 男人的天堂五月丁香| 五月天婷婷久久| 538在线精品| 色丁香五月婷婷| 色五月综合资源推荐| 噜噜狠狠色综无码久久合欧美| 天天爱天天做天天| 五月丁香色色网| 亚洲亚洲人成综合网络| 色噜噜五月丁香婷婷| 亚洲啪啪网| 亚洲成人免费电影| 亚洲色情网站| 五月天精品| 大香伊人久色| 99热福利| 五月丁香五月婷婷| 99人妻碰碰久久久禁片| 五月婷婷色综图片| 热99热9| 色色亚洲五月天| 亚洲精品影视| 久久婷婷桃花五月天| www.久久爱.c n| a色色色色色| 亚洲看av的网站| 色爱五月天| 香蕉综合在线| 丁香六月婷婷色XXXXX| 亚洲成人高清在线| 五月天激情电影| 中文字幕在线观看视频www| 国色天香成人网| 9热在线视频精品| 99热永久在线观看| 色婷婷88| 九一牛视频探花| 五月天另类小说亚洲| 五月亭亭综合五码| 五月天激情国产综合婷婷婷| 五月婷婷啪啪| 色婷婷A| 欧美成人一区二区三区在线视频| 激情涩涩网| 天天插天天爽| 影音先锋男人AV资源站| 欧美综合丁香网| 丁香婷婷色九月| 中国女人做爰A片| 色综合久久综合中文综合网| 视频一二区| 欧美日本日韩| 久久99热这里只有精品23| 99免费| 99国产精品白浆在线观看免费 | www.射伊蕉婷婷| 九九99九九精品免费| 九色91国产| 久久五月综合| 99热欲| 综合激情五月丁香| 婷婷在线视频| 第四色婷婷最爱| 久热人妻| 天天射影| 天天拍天天操| 国产欧美婷婷五月| 99国产精品久久久久久久久久久| 热久久思思热思思| 色一情一乱一伦一区二区三区| 区美毛片子| 丁香五月婷婷AV在线| 在线综合亚洲欧美65| 狠狠色激情在线| 99热这里只| 香蕉国产2013| 五月丁香黄色视频| 777.色色| 日韩专区五月天婷婷丁香| 亚州欧美国产久精国产99综合视频| 色婷婷综合久久久久| 丁香狠狠操| 五月激情婷婷开心| 五月叮香啪| 99热这里只有精品22| 国产毛片操B| 五月天成人手机在线视频| 亚洲超碰在线| 五月丁香亭亭天天舔| 天天操夜夜操| 这里只有精彩亚洲视频推荐| 久xxxx| 狠狠操天天干| 操一区| 欧美在线视频99| 亚洲天堂爱爱| 婷婷五月花| 操嫩逼电影| 国产免费性爱| 亚洲色婷婷| 婷婷丁香宗合888| 久久久久网站| 五月婷婷五月丁香综合| 人人97操| 精品乱码久久久久| 婷婷丁香五月高清| 日本色色图| 狠狠色综合网| 99热精品在这里| 五月婷婷色综图片| 一本色道久久88综合日韩精品| 狠狠色丁香婷婷综合久久97AV| tingtingcaobi| 激情婷婷五月| 国产成人AV人人爽人人澡Va| 性爱网六月丁香| xx久久| 99久久精彩视频。| 亚洲AV永久无码影院黑人| 97五月天| 夜夜天天久久婷婷| 色99在线观看| 日韩啪啪视品| 99热这里只有精品55| 99er6| 亚洲黄色操逼| 99久久久久| 巴基斯坦粉嫩无码视频| 亚洲精品视频在线| 精品综合爱| AV九九| 久热这里只有精品66| 久久五月婷婷视频| 久久婷婷五月综合色丁香花| 亚洲精品99| 亭亭五月激情亚洲在线| 天天操夜夜爽天天操| 激情五月婷婷综合秋霞| 丁香六月综合激情| 啪啪激情网| 五月丁香激情欧洲啪啪| 亚洲五月六丁香激情| 成人在线高清| 成人性生活免费观看。| 欧美槡BBBB槡BBB少妇| 丁香五月伊人| 欧美va在线| 另类五月婷婷| 亚洲精久久| 久久精品女人天堂AAA| 欧美人与性动交CCOO| 五月丁香婷婷免费视频| www.丁香五月| 综合综合网| 婷婷视频网| 91狼友视频网页更新| 久久女婷| 亚洲av网站| 色色色免费视频| 色日本丁香婷婷| 任你擦免费视频| 影音先锋男人av资源站| 色狠狠色噜噜AV天堂五区 | www.婷婷六月天| 丁香成人五月天| 思思久久96热在精品国产,| 色综合综合色| 大香蕉婷婷丁香天堂AV| 丁香五月另类色婷婷麻豆| 久热re视频在线观看网站| 激情五月婷婷五月| 色婷婷五月综合| www,超碰| 九九九九毛片| 亚洲99热| 午夜大香蕉| 91操片| 五月激情影院| 欧美色久| 久久久com| 亚洲人妻电影| 五月丁香| 国产亚洲精品久久久久久郑州| 日韩九九| 亚洲乱码日产精品BD| 五月丁香婷婷色| 五月婷婷丁香五月| 91色呦哟| 国产第99页| 丁香九月综合在线| 日韩在线99| 久七香蕉| 色色婷| 97久久久| 色天天久婷婷| 久久 视频这里只有精总| 日日操人人操| 久久99精品久久久久久噜噜| 99热免| 五月天婷婷激情小说电影| 色婷婷97| 久久五月婷6 9| 粉嫩AV久久一区二区三区| 五月婷婷影院| 婷婷激情六月中文| 色呦呦美女| 久操大香蕉| 99热国品免费| 操熟女成人网| 婷婷午夜激情| 日本V在线观看不卡视频网站| 成人中文网| 伊人激情综合| 综合99综合久久久久久久| 五月丁香婷婷基地| 五月婷婷干| 玖玖资源站中文| 182TV大香蕉| 九九久久精品| 97操碰人免费| 色啪网| 精品婷婷五月视| 日日操日日射| 九月丁香亭亭| 婷婷丁香激情五月天色色色| 99在线视频精品| 亚洲小视频免费播放| 欧美丁香六月激情视频| 五月天狠狠色| 婷婷色五月91啪啪| 香蕉婷婷| 激情五月天婷婷丁香 | 五月天成人在线播放| 丁香婷婷久久 | 操大屄五月天视频| 色五月婷婷中文字幕| jiujiu无码五区| 色五月丁香伊人五月| 婷婷五月天Av| 99久久終合| 五月婷久久| 婷婷五月天亚洲精品| 99人妻碰碰碰久久久久视| 思思热在线精品视频| 内射 无码 伊人| 91无码视频| 人人看人人要| 欧美搡BBBBB摔BBBBB| 丁香六月av| 激情五月激情综合网一级丸片| 五月婷婷综合在线视频小说| 爱久久小说下载网| 色10月婷婷视频| 涩五月色婷婷| 久9热视频在线| www.精品99| 五月天 另类图片| 激情丁香五月婷婷| 色色婷婷丁香| 婷婷五月天Av| 91天堂网综合| 婷婷综合| 天堂AV三级| 色五月丁香婷婷久草| 1000部毛片A片免费观看| www91精品| 九月婷婷丁香| 无码激情AAAAA片-区区| 99视频精品视频| 久操大| 草榴视频黄色网| 狠狠色婷婷丁香六月| 性一交一乱一交A片久久四色| 开心五月婷婷伊人| 五月天六月婷婷电影| 图片区 小说区 区 亚洲五月 | 激情文学五月丁香六月婷婷| 国产高清av黄色看片| 婷婷五月色播网| 99资源在线视频| 七七色综合| 婷婷色五月久久| www.婷婷| 婷婷丁香水多多视频| 色播丁香| 玖玖99福利| 婷婷五月天久久| 欧美在线97| 影音先锋91资源站| 日本69日人视频| 久热99热| 色婷婷基地| 超碰AV在线| 人妻激情在线| 激情五月天综合| 丁香五月天网站| 丁香五月香蕉| 五月天激情国产综合婷婷婷就去爱| 國語久久婷| 91丁香五月| 色婷婷五月天| 六月婷婷激情| 色色五月婷| 伦乱美欧| 91a片爽| 五月婷婷激情综合视频| 色色色97| 亚洲色婷婷| 丁香婷婷激情五月| 墨西哥毛片内射精| 激情综合无码| 啪啪五月天啪啪| 五月综合人妻| 99自拍视频网站| 香蕉综合在线| 成人在线二区| 超碰在线中文字幕| 激情五月天婷婷久久久久久久久久久| 九九爱激情| 99免费热视频| 成人亚洲精品| 中国操逼99| 精a品a| 婷婷五月综合色拍| 熟妇人妻中文字幕无码老熟妇| 九九婷婷五月天影视| 嫩草视频| 狼人久草| 五月婷婷激情| 东北婷婷五月天| 六月婷婷AV| 91久久婷婷| 狠狠操天天操天天操| 丁香五月婷婷国产在线| 这里只有精品在线观看视频| 狠狠干五月丁香综合网| 天天艹天天综合网| 天天婬色综合| 99ri在线视频| 五月天开心网| 米奇影视资源777狠狠色婷婷五月天激情网| 四色五月婷婷| 九九热超碰| 深爱激情五月婷婷| 成人五月天色天堂| 婷婷五月丁香91| 欧美成人精品A片免费一区99| 中文av网| 99热这里只有精品1998| www.激情五月天。com| 丁香综合日产精品久久| AA丁香综合激情| 五月丁香伊人网| 91九色精品女同系列| 色欲色欲久久宗合网| 综合性爱网| 五月婷婷之六月丁香| 成人婷婷| 国精产品一区二区三区| 五月丁香色停停啪啪啪| 色色婷婷五月天| 五月精品| 99免费热视频| 久久这里99| 久久久人妻久久久| 超碰二区| 丁乡久久| 激情亭亭五月| 久久日本wwww色| 五月婷婷六月色| 欧洲一区二区| 色欲午夜无码久久久久久张津瑜| 五月情婷婷| 天天人人天天爽| 日本欧美在线| 午夜丁香| 日本色频| 丁香五月天偷拍| 玖玖婷婷五月| 四月婷婷五月丁香| 99噜噜噜| 日本99色| 色五月婷婷操逼| 婷婷丁香五月天熟女丝袜| 91打屁股免费看| 人妻中文在线| 亚洲五月天激情| www.国产色| 色婷婷中文在线| 亚洲无码99| 久久精品亚洲一级牲爱综合| 丁香婷婷激情网站| 婷婷五月情天| 五月丁香啪啪网| 色婷婷丁香| 欧洲免费视频色| 四色女婷婷| 天堂婷婷丁香六月网| 五月天激情在线视频| 美女亚洲五月丁香| 婷婷五月天激情综合婷婷五月天激情综合 | 婷婷色五月丁香六月欧美啪| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 久久99色色| 五月丁香花免费视频| 婷婷五月天,影院| 五月丁香AV、伊人业余、性色熟妇| 日本天天综合| 激情五月婷在线精品| 五月开心深深爱激情综合| 婷婷五月丁香六月天亚洲综合| 丁香五月天啪啪激情综合网| 99热在线精品观看| 久久久久亚洲AV成人无码电影| 97色啪| 97碰| 亚洲亚洲人成综合网络| 日本nghangse中文字幕| 激情婷婷久久| 天天干天天日天天插| 六月天六月婷| 99人妻碰碰碰久久久久视| 99热这里只有精品1025| 成人综合网站| 激情五月狠狠喔| 99热九九在线| 99精品无码视频| 成人欧美一区二区三区在线观看| 丁香五月欧美激情| 亚洲成人网站在线观看| 色婷婷丁香花五月天| 在线播放成人| www.激情五月天。com| 色九月激情综合网| 久热这里只有| 丁香五月激情宗合| 99re这里只有精品首页| 亚洲成人高清在线| 五月丁香成人网| 婷婷五月色播天| 色欧美日| 丁香五月婷婷丫| 五月婷婷中文字幕| 欧美色婷婷| 亚洲成人影视在线| 色综合久久天天综合网| 激情综合六月| 99只有精品| 综合色七七| 综合久久综合| ji'qi'luan'ren'lun| 人人爱操| 狠狠久久婷婷| 亚洲九九九九| 五月婷婷综合网| 人妻视频一区而且二区| 五月激情婷婷图片基地| 99爱视频| 国产jd1024基地手机看国产| 26UUU| 九月久久婷婷| 伊人国产婷婷五月天| 激情综合五月天| 99久久国产宗和精品1上映| 欧洲一区二区| 热99在线| 日本色99网站| 五月婷婷开心激情六月蜜桃| 色综合色| 五月丁香 啪啪| 这里只精品热在线18| 九九在线视频| 欧美综合123区| 五月丁香六月婷婷国产视频| 日韩国产在线精品| 久久在这里有精品| 98毛片| 五月婷婷丁香啪啪| 久久天堂色| 2025天天爽天天摸| 国外亚洲成AV人片在线观看| 99热99ai| 丁香婷婷色五月| 激情五月婷婷啪啪| 婷婷五月天激情诱惑| 51精品国自产在线| a v色婷婷| 精品久久99码| 性色欲情 网站| 超碰亚洲天堂| 91中文在线| 色情丁香五月婷婷精品| 丁香五月AV| 5月婷婷6月六月丁香| 秋霞av吧| 色综合综合网| 东京热人妻一区二区三区在线| 亚洲 无码 中文字幕 中出| 超碰在线99| 色婷婷www| 97狠狠色| 激情五月综合色| 思思re99视频在线观看| 亚洲小视频免费看| 欧美99| 天天插天天很| 日本eVa一区=区视频| α久久| 少妇被下春药玩弄A片| 亚洲婷婷丁香五月亚洲| A短视频免费在线观看| 婷婷 亚洲图片 丁香| 色亚洲婷婷| 伊人激情AV一区二区三区| 91免费在线视频6| 日本不卡高字幕在线2019| 亚洲综合色丁香五月天| 玖玖@三月天天丁香婷婷| 夜夜爽天操| 综合网网欲色| 天天狠天天叉| 激情小说五月天中文字幕| 97一区二区| 婷婷性色| 色婷婷电影网| 七七婷婷综合| 五月丁香六月色| 午夜亚洲国产精品av一区二区| 97人人操人人干| 丁香五月婷婷性爱| www.婷婷五月.com| 亚洲精品影视| 白天AV月月| 超碰免费电影| 狠狠色婷婷7777久| 久久这里99| 丁香激情五月少妇| 婷婷丁香成人| 激情五月天小说| 五月丁香婷婷激情影院欧美| 五月天婷婷社区| 欧美综合激情五月| 碰碰女| 久久99国产综合精品免费| 色色 亚洲| 99久热在线精品| 国产午夜精品一区二区三区四区| 色播播五月天| 天天干天天干天天干天天干天天干天天干天天| 99热色婷婷| 久久久久9| 丁香五月色欲| 欧美婷婷五月无砖| 美欧日韩国产成人在战| 婷婷激情五月呦呦| 岛国AV网| 久久婷婷综合五月天| 九九热这里只有精品首页| 97超碰9久热婷婷热| 成人日韩欧美| A久久| 婷婷五月天少妇| 狠狠干综合网| 久久久久久婷| 丁香六月啪啪| 亚洲最大在线| 免费五月婷婷网| 五月丁香激情五月天| 99色.com| 亚洲成人丁香花| 99爱精品| 日韩综合久久| 26uuu最新地址| 丁香五月狠狠综合欧美| 99久久综合| 婷婷五月色惰| 一区二区传媒视频| 99九九这里有免费视频| 婷婷久久综合| 欧美黄色AA片哗啦啦啦| 99在线视频播放| 久久五月天色| 久久九九在线视频| 颜射 精品性爱av| 九九视频网| 色999;丁香五月| www.91婷婷| 日韩xx在线| 五月丁香婷婷狠狠操| 天天干天天拍| 成人做爰A片免费看网站找不到了| 综合网啪啪| 激情六月婷婷| 最新va在线播放| 强伦轩人妻一区二区电影| 日本欧美国产| 五月丁香基地| 婷婷五月天狠狠| WWW.色婷婷.COM| 天天日,夜夜爽| 天天插天天草人人玩| www久久五月com| 天天开心婷婷丁香五月| 天天日天天干天天爱| 99色在线视频观看| 这里只有精品,日韩视频| 秋霞电影一级黄| 五月丁香狠狠爱| 26uuu青青| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 天天 青草 制服丝袜 在线| 九热视频| 精品色情一区二区三区四区| 五月丁香啪啪激情| 思思热久久久久思思热| www.丁香五月| 人人草人人舔| 色婷婷影院| 三级三久久线久久99久目本WW| 涩五月婷婷| 国产乱子轮XXX农村| 亚洲色无码A片一区二区麻豆| 天天色情站| 九九综合九| 任我肏视频精品| 香蕉大综综综合久久| 99自拍视频网站| 久久99热只有精品| 激情婷婷五月天在线观看| 97婷婷五月天| 9999三级片| 丁香五月天堂| 九九中文色色| 亚洲av综合网| 丁香六月视频| 精品久久艹| 日韩另类| 久久在线视频免费观看| 欧美色偷偷大香| 色欲九区| 九九亚洲小视频| 婷婷五月色天| 丁香六月婷| 激情综合另类| WWW,激情五月天,COM| 深爱五月亚洲| 婷婷五月色综合| 99无码| 亚洲第一影院高清无码网站| 亚洲国产婷婷色五月| 中出内射的人妻视频| 五月香婷婷| 婷婷五月在线视频| 亚洲婷婷激情综合激情999精品| www.99色| 91窝窝| 激情五月天婷婷免费观看| 六月丁香社区| 五月天社区| 99久久亚洲国产| 丁香激惜男女| 国产avapp 网| 六月五月天婷婷涩播在线| 天天搡日日搡aaaaⅩ| 激情五月六月丁香| www.超碰| 五月综合丁| 激情五月天啪啪| 啪啪综合| 国产高潮白浆一区二区| 激情婷婷综合| 思思视频久久| 天天干天天爽| 在线播放 精品| 色久播播| 激情久久久久久久久| 教师性爱毛片| 丁香五月婷婷少妇| 五月天婷婷影院| 色综合网页| tingtingjiqingwuyue| 亚洲六月婷婷| 婷婷九九色| 五月婷婷色综图片| 丝袜大香蕉| 亚州综合色| 丁香五月激情综合啪啪| 国产67194| 9久国产精品| 五月婷婷六月丁香在线| 五月婷婷综合网| 欧美久热| 超碰免费人人| 大香蕉五月婷婷| 色色色成人网| 丁香婷婷五月综合欧美另类| 天天 日综合| 直接看的av| 久久婷婷啪啪视频| 激情五月天色播| www。五月,com| 天天干天天干天天干天天干天天干天天| 综合婷婷| 色色五月天激情| 国产成人AV在线播放 | 五月激情射| 五月激情综合美女久久| 超碰婷婷五月| 天天做 天天爱| 日本啪啪视频HD| 五月在在观看| 偷偷与邻居做爰完整视频| 色综合网上班开心婷婷久久| 色色五月天激情| 97碰| 另类激情中文| 九九人妻福利| 亚洲亚洲人成综合网络| 六月婷婷日| 亚洲亚洲人成综合网络| 色婷婷五月天天天做| 9久热精品在线视频| 五月丁香婷色| 另类五月激情| 色色色色av色色色色| 亚州激情九月| 日本99在线| 久久网日本| 五月停亭六月,六月停亭的英语| 影音先锋四区| 亭亭五月丁香五月天激情| 99久久免费性爱视频`| 激情四射五月天| 婷婷5月天av| 91在线观看九区| 噜噜网免费视频| 久99久精品视频| 色五月av| 超碰狠狠色| 婷婷性爱视频在线| 久久ww| 熟女五月天久久综合| 色婷婷亚洲综合网站| 久久 天天| 五月婷婷xxx| 亚洲无AV在线中文字幕| 天天婷婷色六月| 超碰成人在线观看| 国产精品日本一区二区在线播放| 亚洲欧美一区二区三区爱爱动图 | 日本www免费九九| 色婷婷电影| 天堂婷婷五月色| 精品一区二区三区三区| 99精品久久| 天天干天天 亚洲| 婷婷五月天久久综合88| 国产67194| 丁香狠狠色婷婷久久无码视频| 97色久| 丁香色婷婷色手机免费在线| 色色五月婷婷久久| 天天成人五月天| 婷婷五月天综合AV| 亚洲精品久久久久久久久久吃药| 99乱视频| 五月情丁香色| 成人色图情色成人网 www.5b5b5bcom 五月天| 九九综合色| 五月丁香六月激情综合在线| 九九热啪啪| 激情五月婷婷综合秋霞| 东京热伊人| 婷婷五月天激情丁香| 日本99视频| 激情av网| 久久A极片| 综合色色婷婷| 久久久久久久久久人妻| 五月婷俺去也| 色色com| 激情五月天开心网丁香无码| 色丁香五月| 九月丁香很很色| 免费亚洲婷婷| 五月婷婷色播| 五月婷婷天| 国产va在线视频| 久9久9久9久9久9久9| 亚洲成人AV一区在线观看| 婷婷六月色| 超碰九色| 久久色亭亭五月天| 色区域网站视频| 三区激情四射av| 99久久久久| 五月丁香婷婷啪啪网| 九月丁香网婷婷| 性做久久久久久久免费看| 伊人久久大香网| 色婷婷久久综合中文久久一本| 激情五月六月婷婷综合啪啪| 久久激情网| 成人av观看| 伊人久久大香线蕉AV最新午夜| 蜜乳av一级av| 亚洲日韩一页精品发布| 色五月婷婷老师| 超碰成人电影| 97色天堂| 九月色婷婷综合| 五月天亚洲色| 婷婷五月花西瓜| 丁香九月婷婷色| 夜夜夜叫天天天做| 久婷婷久草| 电影爱拉战争免费观看| 欧美噜噜噜草| 婷婷色亚洲| 亚洲视频a| site:xmssd.com| 五月丁香日本一抹本| 狠狠干婷婷| 香蕉久久国产AV一区二区| 中文字幕在线不卡| 激情五月天视频| 亚洲成人免费在线| 久久久久这里都是精品| 亚洲欧洲99| 婷婷五月天成人娱乐| 亚洲网站在线鸭子av| 五月婷俺去也| 91精品熟女| 天天综合天天玩夜夜玩天天玩夜夜玩 | 开心四月婷婷在线色播播| 激情涩涩网| 五月综亚洲| 天天天添天天操| 婷婷激情啪啪| 久久伊人五月天| 美欧成人视频| 久久婷婷五月| 蜜桃人妻无码AV天堂三区| 丁香五月花| 无码字幕中文| 97艹| 久热大香蕉| 狠狠88综合久久久久噜噜噜| 久久 这里只有精品1| 五月六月激情| 婷婷五月色| 亚洲色婷婷| 在线观看国产高清视频免费网站| 丁香情色五月| 久xxxx| 另类图片天天影视在线观看| 开心激情色婷婷五月天| 成人九九视频| 综合久久高清| 亚洲激情在线| 五月丁香婷婷激情爱爱| 五月天伊人综合| 免费日韩99| 亚洲夜夜操| 大香蕉婷婷久久| 99热婷婷| 字母不卡码人逼| 五月婷婷黄色| 婷婷丁香五月天小说| 综合网激情| 婷婷久久久| 潮汕成人AV片在线| 成人网站在线观看视频| 五月天色在线| 亚洲成人超碰| 做爰丰满少妇1313| 久久在线大香蕉| 亚洲天天免费| 五月婷婷丁香| 久久国产一区二区三区| 欧美乱码国产一级A片| 丁香六月婷婷综合激情欧美 | 九色91国产| 欧美成人AAA片一区国产精品| 午夜色丁香| 色情·com| 五月婷丁香| 亚洲日韩一页精品发布| 人人性久久| 99.色| 五月激情婷婷在线| 伊人五月天久久| 激情五月激情综合俺也去婷婷小说| 五月丁香无码视频| 色婷婷色99国产综合精品| 色yeye色综合| 婷婷五日b| 99操久久| 婷婷五月开心六月AV| 人人干天天舔| 97超碰在线免费观看| 婷婷最新地址| 99热只有精品在线播放| 婷婷狠狠操| 久久se 综合网| 只有精品在线观看| av在线免费网站| 中文字幕在线视频播放| 丁香五月AV综合| 色婷婷免费观看| 伊人大香久久| 四色女婷婷| 五月丁香狠狠爱| 97色片| 激情五月综合亚洲另类| 色五月色开心开心五月| 天天日天天摸天天| 五月天婷婷色综合| 激情六月丁香| 久热亚洲| 激情五月天第四色| 乱色色色| 久久大大香| 亚洲开心激情网| 五月婷婷丁香| 成人五月天综合网| 91干| 色色色国产| 九九自拍网| 色色色五月婷| 五月婷婷五月天| 久青草大香蕉| 五月婷婷开心综合| 97碰碰九九视频| 开心五月激情五月丁香五月婷婷| 成AV人片一区二区三区久久| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 性色天| 五月亭大香蕉| 99热这里只有精品在线| 亚洲色五月婷婷| 免费观看的婷婷五月视频在线| 日韩精品呦呦va| 五月天婷婷丁香六月| 沈娜娜av| 五月丁香婷婷六月| www,超碰| av在线观看网站| 亚洲精品国产成人AV在线| 亚洲第一黄网| 五月丁香另类图片| 99久热| 丁香五月 综合| 国自产拍偷拍精品啪啪一区二区| 99热欧| 九九九九操逼| 开心五月激情婷婷| 大香婷婷| 久久人人九九| 色色是色N一| 人妻丰满精品一区二区A片| 激情WWW| 婷久久久| 欧美性色视频| 丁香大香蕉| 久久99视频| 久久草婷婷丁香网站| 婷婷五月欧美| 亚洲综合视频网| 五月天激情播播网| 色吧婷婷五月亚洲| rr天天操| 噜噜干日本| 中文字幕人妻熟女在线| 亚洲一区二区无码蜜乳av| 99热99思午夜精品| 日夜操B| 初夜av| 综合九九久久| 26uuu精品国产| 26uuuavcom| 久久99三级在线视频| 色五月天激情| 婷婷五月丁香激情色情| 婷婷五月激情五月丁香五月| 亚洲精品亚洲人成人网| 激情婷婷丁香五月| 黄色五月婷| 丁香五月偷拍| 婷婷五月美女直播| 91超级碰| 色五月综合激情网| www.久久爱.com| 色婷婷丁香五月丁香| 亚洲精品成人片在线播| 丁香婷婷激情| 日本色色色| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 婷婷五月天激情小说| 噜噜色com| 日本老女人黄页在线播放| 97luluse| 91操碰| 婷婷噜噜| 天天操夜夜啊| caopeng97人人| 亚洲综合在线视频| 丁香婷五月天开心六月| 狠狠va| 久久婷婷综合基地| 在线不卡AC| 亚洲色另类| 天天插天天爽| 色香五月天| 97热视频| 亚洲人成网站999久久久综合| 九九RE视频在线精品| 四月婷婷五月丁香| 婷婷丁香亚洲五月天| 久久五月婷| 日韩无码人妻一区二区| 大伊香蕉精品视频在线| 成人亚洲精品| 丁香五月综合AV在线| 99er6| 婷婷伊人久久| 色色影院黄大片| 琪琪色五月婷婷老师| 79精品视频在线观看,| 六九色综合婷婷五月天| 色婷婷五月天堂资源| 777色婷婷爱五月| 97色图片中文字幕视频在线观看| 香蕉婷婷五月| 桃色五月天| 久久99久久99久久99人受| 五月天婷婷社区| 激情五月少妇| 提提热五月天婷婷| 国产色丁香| 久久婷婷色| 婷婷激情六月综合| 免费成片在线观看| 欧美日本不卡黄色片| 97在线观视频免费观看| 久综合网| 91欧美| 久热综合| 色域五月婷婷丁香| 激情婷婷五月天| 天天久| 日本VA视频| 五月丁香六月婷婷的女人| 亚洲人人干| 五月激情综合激情五月| 久月丁香爱婷婷综合| 久久婷婷五月天激情新地址| 97资源碰碰| 五月天丁香网站| 91成人电影| 热99精品视频| 五月婷婷偷拍| 大香蕉久久草| 五月丁香无码| 99久久久久久| AV在线资源| 久99热| 91丨九色丨熟女高潮| 9色在线| 九九国产视频| 丁香五月网络网络| 色青青五月| 五月天色导航| 五月丁香久久丝袜啪啪| 丁香5月婷婷| 涩涩涩五月天| 久操97| 人妻人人操| 九九在线精点品| 大学生高潮无套内谢视频| 国产精品久久久久久亚洲毛片| 亚洲日韩一页精品发布| 97caop| 51精品国内探花| 99免费在线视频| 人妻久热| 色一区高清| 天天艹天天色| 精品免费99| 51国精产品自偷自偷综合| 婷婷色情网| 色婷婷亚洲婷婷| 国产精品久久久爽爽爽麻豆色哟哟 | 人妻爽爽爽久久久久久久久| 丁香婷婷色六月| 色色色色色五月| 超碰91人人操| 色婷婷婷av| 亚洲女婷婷五月基地综合久久久| 五月丁香人人婷婷在线观看| 午夜五月天| 99九九综合久久九九| 爱射综合| 丁香av网| 啪啪综合| 婷婷丁香成人在线视频| 91人妻视频| 婷婷五月色| 婷婷伊人网| 日韩五月婷婷久久| 色欲九区| 夜夜爽日日躁| 色五月在线观看| 五月婷婷AV| 婷婷激情五月呦呦| 伊人碰碰婷婷| 婷婷六月丁香综合| 99热99色| 操久久网| 97五月天| 噜噜五月天综合| 99色精品视频| 日日夜夜爽| 婷婷午夜| 色综合五月| 色五月丁香六月资源站| 五月丁香婷爱在线| 人人爱国产| 色综合播放| 五月丁香美女| 思思精品视频| 成功精品影院| 91在线日本| 99re热久久| 五月天激情亚洲| 91干在线视频| 欧洲精品欧洲情| 久热超碰91| 婷婷五月天桃花网| 婷婷激情四射| 天天干天天操天天拍| 最近中文字幕大全免费版在线| 香蕉大综综综合久久| 久久婷婷操| 色五月激情| enecarbon-materials.com污K127封锁请涟系@wip1688 | 五月天婷婷丁香导航| 激情玖玖sh| 天天操天天日天天爱| 亚洲精品永久久久久久| 无码激情AAAAA片-区区| 五月丁香婷婷基地| 99热免费看| 天天草女人| 都市激情蜜桃婷婷五月天| 亚洲av日韩无码| 丁香五月婷综合| 激情五月丁香色婷婷| 日本三级中国三级99人妇网站| 日本全黄一级999| 六月丁香婷婷开心综合基地| 色色色色色网| 色婷婷88| 夜夜爽天天干| 激情五月天。| 午夜丁香六月婷| 天天干天天干天天干天天干天天干| 色五月大| 狠狠色综合精品视频在线| 亚洲综合网在线| 五月天激情在线视频| www.minyis.com【JT】实力收量可预付QQ2101460746 | 电影爱拉战争免费观看| 日本五月婷| 婷婷五月天堂| 99在线视频精品| 色在线99| 五月婷婷丁香五月| 日都一级A片| 综合色色色色色色| 欧美日韩一区二区三区四区| 桔色成人官方网站| 亚洲国产精品SUV| 99热精品10| 色五月激情网| 五月婷婷久久开心网| 色五月婷婷中文字幕| 无码九九| 久久婷婷精品| 国产阿姨日皮艹逼内射视频| 丁香五月天啪啪| 色婷婷精品小视频| 免费观看欧美成人AA片爱我多深| 99热香港| 99干日日干| 久久99成人性爱高清视频| 日韩人人操|