免费国产精品自在自线-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
返回資訊列表
午夜理论片最新午夜理论剧| 天天摸天天肏| 高清资源站日A美A欧亚…| 99综合成人视频在线观看 | 激情q青青草在线婷婷| 亚欧州精品视频| av在线激情| 成人AV中文字幕| 草榴视频网| AA片在线观看视频在线播放 | 91九色首页| 五月婷婷深深的爱| 激情五月色婷婷| 日韩精品AV一区二区三区| 久久婷婷五月综合色奶水99啪| 久婷婷| 五月天婷婷激情小说电影| 六月婷婷综合激情| 婷婷成人综合免费视频| 色综合色综合色综合| 色爱亚洲| 丁香婷最新动态| 色五月婷婷操逼| 精品九九久久| 婷婷丁香18| 激情综合五月| 夜夜操少妇| 天啪天啪天啪天啪| 五月丁香六月| 婷婷精品在线| 综合久久十三| 夜夜大香蕉婷婷丁香| 日韩精品一区二区刘| 精品视频99看在线视频| 99re视频在线播放| 婷婷5月天激情综合| 疯狂做受XXXX高潮A片| 日日干夜夜撸夜夜骑| 乱精品一区字幕二区| 五月婷婷黄色| 91久久国产综合久久| 成人 在线 日韩| 欧美久久婷婷| 五月天丁香色色| 婷婷综合六月| 国产色丁香| 久久机热探花| 9er热在线精品视频| 日韩无码成人电影| 99久久9| 色色A| 国产成人av在线| 丁香五月伊人| 天天干天天干天天操| 伊人五月婷| 精品人妻伦一二三区久| 99熟女| 91午夜婷婷狠狠久久综合9色| 婷婷九月亚洲| 久久五月婷婷综合网| 99热婷婷| 激情五月天网站| 香蕉久久国产AV一区二区| 婷五月天| 亚洲婷婷六月天| 丁香婷婷六月天| 99热免费18| 91超级碰| 久久色天堂| 亚洲激情四射色| 国产乱妇乱子在线播视频播放网站| 男女啪啪做爰高潮无遮挡| 超碰九热| 激情深爱综合| 婷婷五月色| 成人AV在线网站| 天天草天天摸| 久久 婷婷 五月天| 超碰人人99| 欧美在线ee日韩| 精品在线网站| 免费黄色视频网址| 高清不卡一区| 啪啪综合| 涩五月婷婷| 91大操| 激情五月天开心网丁香无码| 在线中文av| 青青艹b| 五月丁香婷婷激情| 亚洲精品V天堂中文字幕 | 欧美成人色婷婷| 粉嫩AV久久一区二区三区| 久久婷婷综合国产| 色婷五月丁香久亚洲| 六月婷婷色综合| 日本一级特黄大片AAAAA级| 玖玖色综合| 丁香五月天堂| 欧美日韩99| 99热这里只有精品手机在线观看| 天天色粽合合合合合合合| 中文字幕在线视频播放| 华人在线免费| 超碰激情网| 久久婷婷精品| AV美美午夜| 婷婷五月天av| 亚洲热视频在线| 超碰com| 99热这里只有精品在线观看| 日韩ac不卡无码| 天天做天天爽| 99热99热99热99热| 99色天堂| 国产精品久久久久久久久久免费| 婷婷五月综合啪| 变天就操逼婷婷五月| 涩婷婷五月天| 99热最新精品| 午夜性做爰电影| 伊人综合网4| 婷婷丁香18| 思思热99热| 成人必爱视| 综合激情五月天| 婷色人人狠| 日韩一级淫乱片一区二区三区| 韩国97天堂| 婷婷色导航| 久久久久8888| 99精品在线| 欧美日本VA| 亚洲电影中文字幕| 99这里有精品视频| 婷婷精品在线| 色婷婷色五月色丁香| 久久色六月| 狠狠干综合网| 日本va欧美va国产激情| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 能看的av| 色婷婷香蕉| 丁香六月无码| 伊人网色婷婷五月天| 天天射综合网天天插| 7777精品伊人久久久大香线蕉最新版| 乱精品一区字幕二区| 五夜丁香| 9热在线视频| 成人无码髙潮喷水A片| 五月丁香免费看| 免费九九热| 夜夜骑天天操| 337午夜福利| 丁香婷婷射| 婷婷六月天亚州| 秋霞簧片| 五月丁香激情综合六月涩涩爱| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 亚洲精品久久久久久久久久吃药| 香蕉视频性爱BB做爱| 日韩操| 丁香丝袜五月| 五月婷婷六月丁香在线| 天天色天天操天天射| 丁香五月婷婷五月| 日本色99| 亚洲色色色| 亚洲六月婷婷| 99视频免费播放| 丁香五月综合| 五月婷在线观看| 天天综合精品| 久久99久久99www| 欧美色偷偷大香| 亚洲网视屏| 99热在线99| 久久这里有| 综激情网| 亚洲乱码日产精品BD在线观看| 免费无码毛片一区二区A片| 97色色色| 日韩无码色色| 亚洲精品a成人在线播放| 婷婷九月丁香中文| 五月社区婷婷激情| 天天干天天干天天| 亚洲色无码A片一区二区麻豆| 99操99| 九九色婷婷Av| 激情五月天色| 色婷婷五月天久久| 国产精品99久久久久久久女警| 国产精品国产成人国产三级| 91操操| 午夜69成人做爰视频| 亚洲一区二区无遮挡A片| 婷婷五月成人色综合| 五月天激情社区| 天天爱综合网| 色五天综合| 丁香五月777| 狠狠色丁香婷婷综合久久97AV| 五月丁六月婷| 色婷婷免费观看| 99热这里只有精品8| 色婷婷综合成人| 日韩爱操视频| 综合网网欲色| 婷婷色五天| 亚洲国产另类av| 99亚洲综合| 五月丁香成人网| 婷婷五月花| 色欲天天综合网| 99热6精品| 激情AV网| 99er免费在线观看| 丁香六月婷婷综合| 婷婷激情区| 99ER热精品视频| 久久五月天合网| 色婷激情网| 五月色婷婷中文字幕| www.婷婷com| 欧美成人热| 中文字幕不卡+婷婷五月| 色99超碰| 成人丁香五月| 色啪久| 夜夜涩涩涩| 99精品在线| 五月色情婷婷开心五月天| 伊人婷婷五月天| 亚洲国产精品VA在线看黑人| 久久九九99字幕| 亚洲精品一区中文字幕乱码| www..com色爱| 丁香社92视频| 影音先锋91| 综合视频久久| 日韩av手机在线观看| 婷婷色女| 日本9区视频| 久久五月天色婷婷| 激情的五月| 色九九丁香九月色九九色| 久月婷婷| 五月色网| 精品色情一区二区三区四区| 激情婷婷22月间| 噜噜视频| 开心久久五月天| 97色色网| 丁香激情综合| 天堂久久婷婷| 激情婷婷五月天| 狠狠高潮精品亚洲1| XX色综合| 99精品久久久| 天天插,天天射| 淫视馆AV在线| 啪啪视频99| 这里只有精品无码| 婷婷久久丁香五月| 丁香九月色| 激情丁香社区| 五月丁香综合激情| 99这里只有精品在线观看| 色婷婷偷拍| 婷婷久久婷婷色五月| 大香蕉AV电影在线| av国产精品| 97精品在线| 2050人人操免费工开爱| 婷婷激情综合网| 亚洲乱码日产精品BD| 欧美久久婷婷| 六月综合在线| 久久久99精品| 婷婷五月天激情小说网站| 丁香五月天导航| 婷婷五月丁香啪啪| 91色逼| 91狠狠色丁香| 五月天啪啪视频| 九九这里都是精品| 五月综合色| 操逼巨乳91| 欧美经典片免费观看大全| 思思热99热| 激情五月婷婷丁香| 97在线精品| 久久国产一区二区三区| www.夜夜操| 色婷五月天| 国产亚洲99久久精品| 色~性~乱~伦~噜| 婷婷丁香五月色| 综合色播| 色婷婷狠狠18| 色婷婷激情| 亚洲AV日韩无码| 四川女人毛多水多A片| 色婷婷丁香五月| 99日本黄站| 亭亭玉月丁香| wwwav大香蕉| 777久久综合视频| 久久久高清| 香蕉97碰碰碰欧美| 少妇婷婷五月天| 五月天婷婷久久| 久久视9精| 99热综合网| 五月四色婷婷| 激情丁香五月天| 91操操| 冬月かえでAV无码播放| 亚洲国产婷婷色五月| 色情综合网| 丁香五月天激情视频| 91窝窝| 五月丁香婷婷色| 激情综合另类| 亚洲人人操| 五月丁香久久呀| 激情婷婷综合五月少妇| 五月婷婷久久大香蕉| 国产XXXX搡XXXXX搡麻豆| 绿色小导航AV| 人人摸人人| 成人无码中文| 先锋男人91资源| 欧美婷婷六月丁香综合色连续高潮抽搐| 深情五月天| 高清资源站日A美A欧亚…| 日韩性视频| 99热只有| 琪琪色网址| 色噜综| 激情婷婷狠狠干综合| 午夜婷婷丁香| 亚洲AV成人精品日韩在线播放| 99热免费18| 久久婷婷五月天综合| 国产乱妇乱子在线播视频播放网站| 任你爽精品免费视频6| 伊人久久婷婷五月天激情四射| 久久久97| 日韩激情人伦人| www九九免费视频| 四五月婷婷| 亚洲精品久久久久AV无码| 九九色欲网| 综合五月丁香六月婷婷| 97九色视频| 欧洲色色| 国产婷婷久久| 97婷婷狠狠| 五月丁香六月婷婷成人| www.色五月| 婷丁香久综合| 欧美大片免费观看| 中文字幕色色| 一本久道综合99| 久99| 巴基斯坦粉嫰无码视频| 思思热精品在线| 99超在线| 五月婷婷香蕉视频| 天天做天天爱综合| 九九热视频99| 99热免费| 五月婷婷人妻| 日本一级黄色电影| av免费在线观看0| 色婷狠狠| 激情综合五月婷| 99热最新网址| 五月花免费视频| 非洲一级AV| 天堂色婷婷| 色噜噜五月天| 电影91久久久| 综合色情网| 久久欧洲综合网| 另类激情五月| 玖玖@三月天天丁香婷婷| 激情六月色| 欧美色婷婷| 黄色av网站在线免费播放| 五月天伊人网| 亚洲激情亚洲激情| 婷婷五月花.97| 五月天 另类图片| 亚洲Va成人| 久草五月丁香婷婷综合| 深爱婷婷网| 日韩AAAAA| 天搞天天天天天| 精品亚洲国产成AV人片传媒| WWW.色婷婷.COM| 色五月婷婷天堂| 婷婷午夜精品久久久| 五月噜噜| 色色色激情| 婷婷丁香成人五月天| 五月婷婷av在线| 天天日天天爽| 激情爱爱网站超大免费| 五月天婷婷黄色| 91热在线| 99久精品视频| 丁香久久九九99| 精国产品一区二区三区A片| 五月天亚洲综合网| 亚洲熟妇无码乱子AV电影| 婷婷五月噜噜| 五月天色区| 色五月婷婷激情| 日本不卡五月婷婷丁香| 777丁香六月青青草婷婷综合久月| 色婷婷久久综合久色综| 五月丁香啪啪啪啪| 久久久99久久| 在线中文亚洲| 色99在线观看| 激情五月婷婷视频一区二区三区| 狠狠激情五月天| 色五月婷婷丁香五月| 丁香五色月婷婷网| 色丁香五月综合网| 这里只有精彩视频| 狠狠狠狠狠| 色播播五月天| 天天做天天摸| 99爱在线精品视频免费观看| 国精产品一区二区三区| 五月丁香伊人网| 五月婷婷六月丁香综合视频在线| 激情五月婷婷在线区| 国产玖玖资源| 26UUU欧美激情一区二区| 超碰猛烈的性猛交| 婷婷五月综合在线| 夫妇交换刺激做爰| 99国产99| 超级碰碰91| 婷婷99| 丁香六月综合激情| 天天射天天射一道本日本社区| 色色亚卅| 爆乳熟妇一区二区三区爆乳| 狠狠狠狠狠| 综合AV网| 丁香婷婷五月天激情四射| 综合亚洲六月婷婷在线| 五月丁香999| 日韩AAA| 这里精品| 婷婷金品综合视频| 丁香六月天婷婷| 日日天天天| 天天插天天操| 专区无日本视频高清8| 亚洲欧美日韩另类| 嫩模aV在线| 久久婷婷色丁香| 色色亚洲五月天| 超碰99久久| 岛国AAAV| 丁香五月婷婷成人综合| 久热欧美| 丁香婷婷91在线观看视频| www.26uuu.com亚洲电影| 人人人操| 色九月丁香婷婷蜜桃在线观看| 婷婷午夜激情| 天天色综网| 九九黄色网| 日韩精品无码AV| www一区二区三区| 五月天社区| 五月丁香琪琪| 人人操日| 久久综合激情| 亚洲精品视频在线播放| 亚洲偷| 婷婷爱在线观看| 狠狠色噜噜狠狠狠888| 97碰碰碰免费公开在线视频| 精品人人操| 99A片| 欧在线一区| 夜夜做夜夜愛| 丁香六月欧美| 99视频在线观看网址| 综合五月天| 丁香六月激情综合| 久色网址| 超碰在线9| 天天操比比| 伊人影院久久网| 五月开心婷婷| 超碰免费电影| 六月丁香激情| 国产免费av在线| 日日夜夜狠狠| 久久激情五月网| 激情五月综合亚洲另类| 婷婷丁香91| 天天爽天天做| 一级片无码| 激情深爱五月| 五月丁香无码| 91久久久久久久久18| 丁香五月图片| 这里只有精品96| 9|无码久久久久久| 五月婷婷激情网| site:wpjngj.com| 免费做A爰片77777| 久久6这里只有精品| 思思热在线观看| 婷婷丁香五月高清| 久久久中文| 精品一二三区久久AAA片| 另类 在线| 色婷婷五月视频| 大香蕉婷婷五月| 色播播五月天| 婷婷五月骚厕所| 99视频日韩| 婷婷的99视频网站| 婷婷五月天资源| 婷婷久久大香蕉| 亚洲宗合激情| 丁香婷婷基地| 狠狠色五月激情| 老司机日日夜夜青草| 91啪级电影| 久久午夜丁香| 99久在线精品99re8热| 思思热在线精品视频| WWW夜夜| 日亚二欧美| 精品一二三区久久AAA片| 婷婷色狠狠| 99在线精品观看99| 久久青青日本视频| 九九久久五月天| 婷婷六月色情| 五月天婷婷香蕉狠狠超碰综合| 亚洲无AV在线中文字幕| 成人在线网址| 国产26uuu视频| www.91九色| 色狠狠色噜噜AV天堂五区| 26uuu丁香婷婷五月| 99色视频在线观看| 五月丁香综合激情网| 深爱五月婷婷| 久婷久婷| 另类视频五月天| 综合图区激情| 久久这里只有国产精品视频| 天天干,天天舔| 最新无码专区| 涩五月婷婷| 日韩操逼大片| 91久久久久| 最新高清无码专区| 丁香五月情| 开心婷婷五月| 丁香五月婷婷五月| 操日视频| 婷婷久久精品| 91精品综合久久久久久五月丁香| 中文字幕日韩成人| 四色五月视频| 欧美A片在线视频免费观看| 大地9中文在线观看免费高清| 综合网啪| 激情五月丁香综合网站 | 五月婷婷激情网| 夜夜干夜夜操| 亚洲精品99| 人妻激情综合| 狠狠色噜噜狠狠狠狠综合| 天天夜夜操| 俺也去综合| 久婷婷久草| 日韩AV片| 亚洲色夜| 射区导航| sS丁香五月婷婷| 婷婷涩涩网| 五月亭亭综合五码| 99成人免费视频| 五月婷婷之综合激情| 婷婷五月天激情综合深爱| 综合欧美五月婷婷| 中文网AV| 久久久久人无码人妻| 人人干人人操人人摸| 99re在线视频| 99噜噜噜在线播放| 精品五月花| 激情性爱婷婷| 五月久熟女| 久久久精品99亚洲综合| 日本美女上人| 嫩草综合网| 女人天堂 AV| 五月婷婷三级| 97碰碰九九视频| 婷婷丁香先锋资源网站| 久久综合婷婷| 日日肏夜夜干| 色99在线视频| 草草女人亚洲| 色婷婷天堂| 九久9精品| 婷综合六月| 五月情四婷婷| 99爱爱| 伊人五月综合网| 99操视频| 久久久久久久久久久久久久久久久精典| 五月婷九月| 99久热精品在线| 丁香五月AV在线| 日韩啪| 久久密臀婷婷| 久久狠色噜噜狠狠狠狠97| 六月婷婷开心| 狠狠爱深色婷婷综合| 综合色播| 免费视频99| 色婷婷性爱| 五月婷色啪| 五月丁香| 丁香五月激情六月欧亚激情综合导航| 亚洲精品久久久久久久久久吃药| 婷婷97| 99久re热| 五月天久久婷婷| 天天插综合| 99视频在线观看视频| 婷婷伊人久久| 五月伊人婷婷| 亚洲精品色| 91在线资源| 欧美日韩AAAAA| 九九热手机在线视频| 99在线精品视频| 另类色视频| 狠狠操狠狠爱| 伊人久久大香网| 精品人妻伦九区久久AAA片| 六月婷婷七月丁香| 播五月开心婷婷欧美综合| avh片在线观看| 欧美综合五月丁香五月天| 大香蕉在九| 他改变了拜占庭| 色婷婷狠狠| 激情五月天色色网| 99色在线| 91人人爽狠狠狠| 日本色色网站| 99九九久久| 亚洲色综合| 五月丁香在线国产 | 啪啪啪综合网| 99热这里只有精品16| 日木狠狠干| 色婷婷五月天成人网| 久久日曰| 丁香五月天堂网| 热99视频精品| 婷婷酒色网| 天天爽夜夜爽夜夜爽精品视频| 久久精品日| 丁香六月毛片| 六月激情婷婷综合| 激情五月天色播| 色综合开心五月深爱五月| 9色在线视频精品观看| 日91高清无玛| 思思色播| 大香久久综合网| 色五月婷婷五月天激情综合| 99碰超| 国产成人精品一区二三区熟女在线| 97色色色视屏| 97久久超视频| www激情| 五月欧美色色五月| 久久精品视频99| 欧美性做爰大片免费看办公室| 26uuuavcom| 丁香久月婷| 99热在线观看| 婷婷五月天成人| 婷婷丁香色五月| 婷婷五月天综合激情| 97大香蕉五月天| 97操视频| 色情五月天se| 99ri精品视频在线观看| 就去色色五月丁香婷婷久久久| 9热视频在线观看| 人妻性爱| 欧美成性色| 欧美精品A片一区在线观看| 婷婷五月天福利| 99综合| 久久亚洲婷婷综合色五月| 久久综合66| 丁香五月偷拍| 97九色视频| ss99热| 六月丁香婷婷综合色播| 久大香蕉| 4399高清无码视频| 激情婷婷五月丁香啪啪啪| www狠狠| 婷婷少妇激情| 国产激情av| 狠狠操狠狠| 天天干天天爽天天操| 九九碰九九爱97超碰| 九九99免费理论| 久热只有这里精品| 六月色色婷婷| 五月丁香婷婷久久| 亚洲婷婷六月天| 丁香六月高清视频| 五月婷婷干| 99热这里只有精品2016| 夜夜涩涩涩| 成人五月天婷婷| 91干视频| 97人人干人人操| 色综合色综合婷婷热| 《诡秘之主》在线观看| 婷婷五月丁香在线观看| 99热伊人| 小泽玛利亚视频一区二区| 国产又爽又猛又粗的视频A片| 色综合五月天| 国产乱妇乱子在线播视频播放网站| 最近中文字幕2019视频1| 亞洲自怕| 99男人天堂| 五月伊人网| 久久婷婷人人| 国精产品一区二区三区| 丁香五月天婷婷91| 性色五月天| 色色色综合网| www.色色色com| 综合色影院| 激情综合网址| 五月丁香色综合| 99精彩视频| 9久热精品在线视频| 天天肏天天肏| 九九综合视频在线观看| 天天做天天爱天天做| 开心激情综合| 久久婷婷五月天| 深爱五月天| 色婷婷色五月综合| 婷婷97碰碰| 婷婷丁香77777| 99热在线成人网站| 天天操天天操天天操天天操天天操| 五月婷婷激情网| 色墦五月丁香| 麻豆123区| 色~性~乱~伦~噜| 九九热av| 国产婷婷五月色情综合| 俺去也五月天| 亚洲成人在线综合| 九九热手机在线视频| 婷婷五月天激情综合| 婷婷五月av| 色狠狠婷婷| 色综合爽| 丁香婷婷基地| 色 五月 天 婷婷 丁香 九月| 这里只有精品,日韩视频| 国产精品久久久海的味道| 五月天啪啪| 色婷婷亚洲综合网站| 97成人超碰免| 凹凸操Av| 激情五月婷婷| 天天日天天干天天爱| 婷婷中文无码| 91凹凸在线| 婷婷久久婷婷| 五月激情黄色小说| 日产精品一线二线三线芒果| 色噜噜狠狠色综合网| 久草热在线视频| 曰本aaaaaa丈片| 最新精品视频99| 伊人激情| 99久久精彩视频。| 99re久久| 无码A片一区二区免费| 人人操人人爱丁香五月| 九九热狼人| 狠狠久综合| 色青青电影色五月| 欧美色欲色欲天天天www| 美女激情综合| 久操无码| 久久婷婷五月免费视频| 一区二区乱视频码| 激情六月天婷婷| 啪啪五月综合| 欧美色97| 久操人妻| a久久| 乱女乱妇熟女熟妇综合网站| 六月丁香激情网| 深爱五月激情综合| 亚洲成人网站在线播放| 狠狠久久婷五月| 激情丁香社区| 亚洲AV无码久久精品色欲| 99在线免费视频| 亚洲性爱干干| 国产亚洲精品AAAAAAA片| 久久久久99精品成人片| 99ri6在线视频| 丁香花五月天激情| 丁香五月区| 欧美性爱一区| 激情99| 九色无码| 色婷婷丁香网| 免费视频WWW在线观看网站| 香蕉AV777XXX色综合一区| 激情五月综合第一页| 99热超碰| 天天日夜夜草进麻麻的子宫| 综合色图婷婷| 欧美影院| 色青青电影色五月| 亚洲激情久久| 六月婷婷狠狠色在线观看| 久热久69| 99色视频| 久久99热这里只有精品23| 99re免费视频| 99熟女| 思思热视频| 伊人五月婷婷| 97人人操人人插| 婷婷五月天激情网| 免费成人va| 婷婷9月天| 热99在线| 丁香五月23111| 一区色色色色网| 国产三级在线播放| 91精品久久久久久综合五月天| 思思精品热在线| 色色色色色色色色五月先| 超碰京东热av男人的天堂| 久99热| 91丨九色丨白浆秘| 精品五月天| 丁香婷五月天| 丁香婷婷黄网站| 97自拍视频网| 中文字幕日产A片在线看| 欧美在线操| 九九亚洲| 婷婷开心激情五月激情网| 婷婷在线免费| 人人插9| 国产熟妇乱子伦hd| 狠狠爱综合网| 免费精品66| 久久激情五月婷婷| a在线免费v| 97碰碰免费.视频| 无码AV免费精品一区二区三区| 婷婷丁香宗合888| 五月丁香在线| 婷婷五月在线视频| 丁香五月激情婷婷| 亚洲AV激情五月综合网| 色综合丁香| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 思思热视频| 国产精品成人在线| 色婷婷亚洲精品天天综| 亚洲色综合| 婷婷久久大香蕉| 婷婷五月六月丁香| 色色婷婷丁香| 日本五月婷婷| www.91婷婷| 99久在线精品| 激情五月天影院| 天天日天天爽| 影音先锋五月婷婷| 99re8在这里只有精品| 91九九| 666555。COm毛片| 激情综合另类| 九九色色色| 色婷婷电影网| 色婷婷丁香六月| 色色色色色色色综合| 91小黄书网址在线观看| 久久天天| 婷婷天堂视频| 色五月综合激情| 久久香蕉网| 久久综合网免费视频| www.婷婷| 综合色色网| 超碰不卡在线| 九九国产精视频| 婷婷天天插天天爱| www.com五月天| 亚洲不卡| 日本韩国视频在线观看社区免费的9| 青青草99re| 91啪啪| 五月丁综合在线观看| 偷拍五月丁香| 久久激情五月| 亚洲熟女乱色综合亚洲网站| 婷婷五月天中文字幕.| 久久成人精品视频| 天天干天天干天天干| 丁香五月婷婷基地| 偷拍99在线视频观看| 久操大香蕉| 久热这里只有精品在线观看 | 大香蕉五月天| 九月婷婷综合| 2025神马午夜福利| www.91.com处女在线直播| 五月丁香婷婷三级| 丁香激情五月天| 91狼友视频网页更新| 色国产五月| 婷婷五月天福利| 桃色五月婷婷| 91丨九色丨东北熟女| 精品一二三区久久AAA片| 99精品超在线播放| 五月天四色房丁香| 三人荫蒂添的好舒服A片| 大香蕉99热| 国产,欧美,日韩,性爱| 五月天婷婷丁香| av在线资源| 国产毛多水多女人A片| 东京热免费视频网站| 欧美VA在线| 亚洲av电影网站| 日日夜夜天天爽| 99在线精品免费视频| 综合激情五月四射婷婷| 久久多色| www.99热精品| 丁香六月婷婷久久综合| 色五月婷婷激情基地| 天天情色五月天| 亚洲网综合在线| 五月丁香久久综合精品| 狠狠干在线| 国产伦理精品高清在线观看网站一区二区 | 丁香婷婷基地| 久久久久久18| 日亚二欧美| 婷婷成人在线| 人妻VideOssS人妻高清| 99热九九九九| 人人爱国产| 亚洲色图81p| 九月综合| 99在线播放| 天天色天天| 2022人人操人人看| 丁香六月婷婷| 丁香六月婷婷开心婷婷网| 激情五月婷婷中文字幕| 碰超亚洲| 九九在线精点品| 97精品自拍| 亚洲操操操| 中文成人在线| 激情五月深爱婷婷| 2022人人操人人看| 欧美激情VA永久在线播放| 国产成人av在线| 天天干 夜夜爽| 思思热再线视频| 六月婷婷青青青视频| 五月天 婷 欧美亚洲| 激情五月婷黄版| www.久久99| 天天狠狠色噜噜| 色婷六月| 91日韩在线| 久久思思精品| 激情综合女人网五月播播| 久久人妻超碰一区| 婷婷97碰碰| 精品一区二区三区四区五区六区介绍| 粉嫩AV久久一区二区三区| 婷婷六月综合基地| 九九这里有精品视频| 亚洲成人av在线观看| 五月激情小说网| 久久亚洲色导航| www.婷婷,com| 99精品国产乱码久久久人妻| www,com,五月色色| 6月丁香婷婷激情| 欧美激情久| 色天堂婷婷| 人妻AV在线| 婷婷丁香五月激情| 99热免费精品热久久66| 色色色天堂网| 五月婷婷操操| 五月天大香蕉| 九九热只有精品| 99热这里都是精品| 婷婷伊人无码| 丁香久久五月婷综合| h在线看免费版在线看| 久久99久久99精品免观看粉嫩| 五月婷婷啪啪网| ,99视频久久| 啪啪综合| 中文字幕,综合,91| 五月桃花网综合| 99国产精品久久久久久久久久久| 色五月色图| 天天综合色| 五月丁香无码视频| 五月丁香色狠狠干大屄| 色色亚卅| 五月亚洲激情| 九九热这里只有精品5| 久久五月天激情美女| 色婷婷丁香九月| 在线视频九色97| 操逼五月婷婷| 婷婷五月丁香国产| 亚洲另类电影| 五月婷婷丁香| 99热这里都是精品| 五月在线| 俺也去色| 成人 在线观看国产| 五月婷视频| 国外亚洲成AV人片在线观看| 疯狂做受XXXX高潮A片动画| 婷婷五月综合社区| www.色婷婷.com| 亚洲欧美丁香五月天亚洲欧美| 欧美色六月婷婷| 欧洲亚洲激情五月天在线| 丁香五月狠狠综合欧美| 久久综合九九| 五月欧美色播| site:feetmall.com| av狠狠操| 五月婷婷99热| 九九碰九九爱97| 国产小精品| 久久38视频| www.久久爱.c n| 色五月婷婷中文字幕| 婷婷五月天无码视频| 伊人影音无码一区二区三区| 丁香五月骚喷水视频| 婷婷开心六月| 99热这里| 婷婷欧美综合| www.五月天| 99爱在线| www.婷婷五月天| 亚洲婷婷五月天在线激情综合网| 熟女重口味αV| 九九成人| AA片在线观看视频在线播放| 精品一二三区久久AAA片| www.金莲av| 生活片五区| 69激情小说| 婷婷色啪| 亚洲偷| 中文字幕在线免费| 99热这里只有免费| 婷婷五月色| 国产欧美熟妇另类久久久| 色婷婷五月综合色婷婷| 激情五月婷| 婷婷五月天激情丁香| 色婷婷五月色| 9色免费网| 翔田千里无码| 九九色综合| 色婷婷aV四虎| 做爱夜夜干天天操| 亚洲另类婷婷综合| 超pen个人视频97| 亚洲AV永久无码影院黑人| 日本99久久| 综合激情在线| 九色视频入口91| 五月丁香六月激情综合在线| 五月丁香亭亭操逼| 国产色99| 丁香网五月天激情| 91超碰在线观看| 亚洲色99综合天堂| 啪啪啪啪五月天| 五月丁香婷婷啪啪| 久久久久久久8| 九九色99| AV成人在线网站| 五月丁香色五月| 99自拍视频网站| 爆乳熟妇一区二区三区爆乳照片| 五月婷婷网五月在线| 99激情视频| 五月婷婷激情刺激| 天天色天天日| 99热最新精品| 可以看的AV| 国产人人操| 五月亭亭综合五码| 91av成人| 99色亚洲| 超碰在线播放免费观看| 成人色图情色成人网 www.5b5b5bcom 五月天 | 亚洲色色图片| 狠狠狠狠狠干| 日日色五月天| 丁香五月花影院| 97婷婷五月天| 日日杆天天| 五月天激情婷婷五月天久久| 高潮毛片又色又爽免费| 婷婷丁香综合成人| 免费观看2018www黄色操逼网站| 久久视频在线| 婷婷综合性爱网| 婷婷五月激情视频在线| 婷婷久久图片| 秋霞成人毛片一级A片| 99re热精品视频国| 99在线视频免费| 亚洲天堂色| 操逼123网| 99热超| 青草五月天| 狠狠色噜噜狠狠色噜噜噜999| 婷婷激情综合| 99a级片| www.色五月| 婷婷丁香亚洲五月天| 日都一级A片| 日逼免费视频| 97色干| va婷婷在线| 亚洲激情综合免费| 色婷婷88| 伊人综合网站| 亚洲va国产va天堂va综合va| 天啪天啪天啪天啪| 日本五月婷婷| 99免费热视频| 婷婷激情丁香五月婷婷激情丁香五月婷婷 | 九九热视频99| 99ri精品视频在线观看| 九九视频这里是精品五月| 天天爽天天操| 人妻自慰高清合集| 啪啪91| 97热超碰| 国产精品涩涩涩视频网站| 婷婷五月天美女21p| 五月色情婷婷开心五月色情| 啪啪操超碰| 久久久久久久11111111111| 超碰在线精品| 日日综合网| 婷婷五月永远18免费久久久| 超碰97免费在线| 国产精品久久久爽爽爽麻豆色哟哟| www,天天干| 日本成人噜噜噜噜噜| 五月婷婷黄色| 亚洲成人av在线播放| 五月天开心色色网| 欧美色爱五月天| 人人色AV| 天天做综合| 啪啪激情网| 久久九网| 婷婷综合性爱网| 大学生高潮无套内谢视频| 综合婷婷| AV色婷婷| 久婷久婷| 天天干天天操天天爽| 久久在线人妻| 国产99视频永久免费| 开心婷婷五月花| 亚洲精品五十一区| 久久久久久欧美精品se一二三四| 婷婷刺激综合| 综合久久十| 91人人人人人| 7EzOBIhNq85TO| 成人.在线日韩| 超碰猛烈的性猛交| 九九在线精品| 色爱五月天| 天天日天天草| 色五月亚洲| 99操免费视频| 99热日| 在线天堂9| 99在线观看免费精品视频| 六月激情婷婷色| 五月婷婷综合网在线播放| 大香蕉人人人| 丁香五月婷婷Av| 一级性感黄色内射视频| 欧美色偷拍| 色婷婷先锋| 日本超碰在线| 亚洲色五月天是什么| 99性感视频| 涩婷婷五月天| www.99热. com这里只有精品| 天天日夜夜曹| av在线中文| 来吧亚洲综合网| 中文字幕丰满孑伦无码专区| 色婷婷五月综合激情中文字幕| 鲁鲁色五月| 亚洲成人九九九| 91日韩在线|