欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

WebSocket部署五大致命坑:握手失敗、多進(jìn)程丟消息、心跳掉線、Nginx緩沖延遲

WebSocket部署五大致命坑:握手失敗、多進(jìn)程丟消息、心跳掉線、Nginx緩沖延遲 1. 為什么一個(gè)“能發(fā)消息”的聊天室上線后卻卡在握手階段去年接手一個(gè)內(nèi)部協(xié)作工具的輕量版網(wǎng)頁聊天模塊需求很樸素支持十人以內(nèi)實(shí)時(shí)文字交流不依賴第三方服務(wù)部署在公司已有的一臺(tái)邊緣服務(wù)器上。我第一反應(yīng)是——WebSocket這還用想瀏覽器原生支持、協(xié)議成熟、社區(qū)方案多如牛毛抄個(gè) Demo 改改樣式就能上線。結(jié)果第一天就栽在了HTTP 400 Bad Request上。前端控制臺(tái)清清楚楚打印著WebSocket connection to wss://chat.example.com/ws failed: Error during WebSocket handshake: Unexpected response code: 400不是證書問題wss能加載頁面不是跨域CORS 已配也不是路徑錯(cuò)/ws確實(shí)是后端路由。我反復(fù)檢查 Nginx 配置確認(rèn)proxy_set_header Upgrade $http_upgrade;和proxy_set_header Connection upgrade;都在甚至把Connection值從upgrade改成$connection_upgradeNginx 1.19 推薦寫法依然報(bào)錯(cuò)。直到我把瀏覽器開發(fā)者工具切到Network → WS標(biāo)簽頁點(diǎn)開那個(gè)失敗的連接展開Headers才看到真正的問題Sec-WebSocket-Key字段值被 Nginx 某個(gè) upstream 模塊悄悄截?cái)嗔俗詈髢蓚€(gè)字符。而 RFC 6455 明確規(guī)定該字段必須是 base64 編碼的 16 字節(jié)隨機(jī)值即固定 24 字符長度。少兩位服務(wù)端解析Accept值時(shí)必然失敗直接返回 400。這個(gè)坑背后藏著一個(gè)常被忽略的事實(shí)WebSocket 握手不是一次普通的 HTTP 請(qǐng)求而是一次嚴(yán)格遵循 RFC 的協(xié)議協(xié)商過程。它要求客戶端發(fā)送Upgrade: websocket、Connection: Upgrade、Sec-WebSocket-Key24 字符 base64、Sec-WebSocket-Version: 13服務(wù)端必須原樣回傳Upgrade: websocket、Connection: Upgrade并計(jì)算Sec-WebSocket-Accept對(duì) Key 固定字符串做 SHA1 base64。任何中間件反向代理、WAF、CDN若對(duì)這些特定 header 做了截?cái)?、過濾、重寫或大小寫轉(zhuǎn)換握手就會(huì)無聲失敗。更隱蔽的是很多開發(fā)者習(xí)慣用curl -i http://localhost:8000/ws測(cè)試接口但 curl 默認(rèn)不會(huì)發(fā)送 WebSocket 所需的Upgrade頭所以返回的永遠(yuǎn)是 200 HTML 或 404根本測(cè)不出握手邏輯是否真通。真正有效的測(cè)試方式只有兩種一是用瀏覽器new WebSocket(ws://...)二是用wscat這類專用 CLI 工具# 正確測(cè)試握手會(huì)顯示服務(wù)端返回的 Accept 值 wscat -c ws://localhost:8000/ws # 錯(cuò)誤測(cè)試等同于普通 HTTP GET毫無意義 curl -i http://localhost:8000/ws我后來在某高校的物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái)項(xiàng)目里也遇到類似問題學(xué)生用 Python 的requests庫模擬 WebSocket 請(qǐng)求代碼寫成requests.get(ws://...)自然永遠(yuǎn)收不到消息——因?yàn)閞equests根本不支持 WebSocket 協(xié)議它連握手第一步都邁不出去。WebSocket 不是“帶升級(jí)頭的 HTTP”它是在 TCP 連接建立后通過一次 HTTP 兼容的協(xié)商將連接“切換”到全雙工二進(jìn)制幀模式。這個(gè)“切換”動(dòng)作必須由專門的 WebSocket 客戶端庫完成。所以當(dāng)你看到“WebSocket 連接失敗”時(shí)第一反應(yīng)不該是查后端日志而是打開瀏覽器 Network 面板盯死 WS 連接的 Request Headers 和 Response Headers。重點(diǎn)核對(duì)四點(diǎn)Upgrade值是否為websocket、Connection是否含Upgrade、Sec-WebSocket-Key是否為 24 字符、響應(yīng)狀態(tài)碼是否為101 Switching Protocols。只要其中任一環(huán)斷裂后續(xù)所有功能——廣播、心跳、離線消息——都是空中樓閣。提示Nginx 中若啟用了gzip或brotli壓縮務(wù)必確保gzip_disable msie6;后追加websocket;否則某些舊版壓縮模塊會(huì)干擾 WebSocket 幀。這不是玄學(xué)是 Nginx 官方文檔明確列出的兼容性配置項(xiàng)。2. 單進(jìn)程能跑通為何一加--workers 4就丟消息聊天室本地開發(fā)時(shí)一切絲滑F(xiàn)lask-SocketIO eventletpython app.py啟動(dòng)兩人互發(fā)消息秒回。但一上生產(chǎn)環(huán)境按慣例加了 Gunicorn 多進(jìn)程gunicorn --workers 4 --worker-class eventlet --bind 0.0.0.0:8000 app:app問題立刻爆發(fā)A 用戶發(fā)消息B 用戶有時(shí)收到有時(shí)收不到C 用戶剛連上歷史消息一條沒拉到D 用戶刷新頁面后發(fā)現(xiàn)自己的消息在別人界面上消失了。起初我以為是 eventlet 的 monkey patch 沒打全把import eventlet和eventlet.monkey_patch()往app.py頂部一塞重啟無效。又懷疑是 Redis 消息隊(duì)列沒配翻 Flask-SocketIO 文檔發(fā)現(xiàn)它默認(rèn)用內(nèi)存存儲(chǔ)連接狀態(tài)——單進(jìn)程時(shí)沒問題多進(jìn)程時(shí)每個(gè) worker 進(jìn)程都維護(hù)一份獨(dú)立的內(nèi)存連接表A 發(fā)的消息只推給本進(jìn)程里的 B而 C 可能落在另一個(gè)進(jìn)程里自然收不到。這才是核心癥結(jié)WebSocket 連接是長連接綁定在具體進(jìn)程的內(nèi)存中但用戶消息需要跨進(jìn)程廣播必須引入外部消息總線。Flask-SocketIO 官方支持三種 message queueRedis、RabbitMQ、Kombu兼容多種 broker。我們選 Redis不僅因它輕量更因它的 Pub/Sub 機(jī)制天然契合廣播場(chǎng)景——一個(gè)進(jìn)程 publish所有訂閱的進(jìn)程都能實(shí)時(shí)收到。配置并不復(fù)雜但有三個(gè)極易踩的細(xì)節(jié)2.1 Redis URL 必須顯式指定socketio.RedisManager很多教程只寫message_queueredis://這是錯(cuò)誤的。Flask-SocketIO 的message_queue參數(shù)實(shí)際接受的是SocketIO構(gòu)造函數(shù)的message_queue值而該值必須是一個(gè)BaseManager實(shí)例或其 URL。正確寫法是from flask_socketio import SocketIO, RedisManager # 方式一URL 字符串推薦 socketio SocketIO( app, message_queueredis://127.0.0.1:6379/0, cors_allowed_origins* ) # 方式二顯式創(chuàng)建 Manager便于調(diào)試 redis_url redis://127.0.0.1:6379/0 manager RedisManager(redis_url) socketio SocketIO(app, client_managermanager, cors_allowed_origins*)如果只寫message_queueredis://SocketIO 會(huì)嘗試用默認(rèn)的MemoryManager導(dǎo)致多進(jìn)程下消息無法同步。2.2 Gunicorn worker class 必須與異步模式匹配Flask-SocketIO 要求底層異步框架eventlet/gevent與 Gunicorn 的 worker class 嚴(yán)格對(duì)應(yīng)。常見錯(cuò)誤組合錯(cuò)誤配置后果--worker-class eventletimport gevent啟動(dòng)報(bào)ImportError: No module named gevent--worker-class geventeventlet.monkey_patch()運(yùn)行時(shí)隨機(jī)崩潰因兩種協(xié)程庫沖突--worker-class syncSocketIO(..., async_modeeventlet)消息阻塞CPU 占用飆升我們的項(xiàng)目用 eventletGunicorn 啟動(dòng)命令必須是gunicorn \ --workers 4 \ --worker-class eventlet \ --worker-connections 1000 \ --timeout 30 \ --keep-alive 5 \ --bind 0.0.0.0:8000 \ --access-logfile - \ --error-logfile - \ app:app其中--worker-connections 1000是關(guān)鍵eventlet worker 的連接數(shù)上限默認(rèn)僅 1000若并發(fā)連接超限新連接會(huì)被拒絕表現(xiàn)為用戶連不上。而--timeout 30不能設(shè)太小否則長連接可能被誤殺。2.3 廣播邏輯必須調(diào)用socketio.emit()而非emit()這是新手最常犯的錯(cuò)誤。在 SocketIO 事件處理器中# ? 錯(cuò)誤只向當(dāng)前連接的客戶端發(fā)消息單進(jìn)程有效多進(jìn)程失效 socketio.on(message) def handle_message(data): emit(response, {msg: data[text]}) # 僅發(fā)給 sender 自己 # ? 正確廣播給所有連接的客戶端依賴 Redis manager socketio.on(message) def handle_message(data): socketio.emit(response, {msg: data[text]}) # 注意是 socketio.emit()emit()是flask_socketio模塊的全局函數(shù)它默認(rèn)作用于當(dāng)前請(qǐng)求上下文的 socket而socketio.emit()是SocketIO實(shí)例的方法它會(huì)通過配置的 message queue如 Redis向所有 worker 進(jìn)程廣播。多進(jìn)程部署下必須用后者。我們?cè)诰€上環(huán)境因此丟失過整批消息前端誤將socket.emit(message, ...)寫成socket.send(...)后端又用了emit()結(jié)果消息只在 sender 的進(jìn)程內(nèi)存里打轉(zhuǎn)其他用戶完全無感。排查時(shí)用redis-cli monitor抓包發(fā)現(xiàn)根本沒有PUBLISH命令發(fā)出立刻定位到調(diào)用方式錯(cuò)誤。注意socketio.emit()的room參數(shù)可指定廣播范圍。若要發(fā)給除 sender 外的所有人用broadcastTrue若要發(fā)給某個(gè)房間先join_room(general)再socketio.emit(..., roomgeneral)。別指望emit()自動(dòng)識(shí)別房間——它壓根不經(jīng)過消息總線。3. 為什么ping_interval25會(huì)導(dǎo)致移動(dòng)端頻繁掉線上線第三天運(yùn)營同事反饋iOS 用戶聊天時(shí)經(jīng)常“消息延遲 10 秒以上”Android 用戶偶爾“突然斷開重連”。我們查服務(wù)端日志發(fā)現(xiàn)大量Client disconnected記錄時(shí)間戳集中在用戶鎖屏或切到后臺(tái)后的第 25~30 秒。立刻想到心跳機(jī)制。WebSocket 協(xié)議本身沒有內(nèi)置心跳但 SocketIO 在傳輸層之上實(shí)現(xiàn)了ping/pong幀?;睢DJ(rèn)配置是socketio SocketIO( app, ping_interval25, # 每 25 秒發(fā)一次 ping ping_timeout5, # 等待 pong 的超時(shí)是 5 秒 cors_allowed_origins* )問題就出在這里ping_interval25對(duì)桌面瀏覽器友好但對(duì) iOS Safari 是災(zāi)難。iOS 系統(tǒng)為省電會(huì)對(duì)后臺(tái) Tab 的 JavaScript 執(zhí)行施加嚴(yán)格限制——定時(shí)器setInterval在后臺(tái)可能被暫停長達(dá) 30 秒以上。當(dāng)客戶端處于后臺(tái)時(shí)ping_interval計(jì)時(shí)器停止服務(wù)端在 25 秒后發(fā) ping客戶端收不到因 JS 被掛起服務(wù)端等 5 秒沒 pong判定連接死亡主動(dòng)關(guān)閉。解決方案不是調(diào)大ping_timeout那只會(huì)讓斷連延遲更久而是降低ping_interval讓心跳在系統(tǒng)限制內(nèi)完成。iOS 官方文檔指出后臺(tái) Tab 的最小可靠定時(shí)器間隔約為 10 秒。我們將配置改為socketio SocketIO( app, ping_interval10, # 關(guān)鍵縮短到 10 秒 ping_timeout3, # 對(duì)應(yīng)縮短超時(shí) cors_allowed_origins* )同時(shí)前端增加網(wǎng)絡(luò)狀態(tài)監(jiān)聽主動(dòng)處理斷連// 前端 JS const socket io(https://chat.example.com, { transports: [websocket], // 強(qiáng)制 WebSocket禁用輪詢 reconnection: true, reconnectionAttempts: 5, reconnectionDelay: 1000, timeout: 20000 }); // 監(jiān)聽頁面可見性變化 document.addEventListener(visibilitychange, () { if (document.hidden) { console.log(頁面進(jìn)入后臺(tái)保持心跳); } else { console.log(頁面回到前臺(tái)檢查連接); if (socket.connected) return; socket.connect(); // 主動(dòng)重連 } });另一個(gè)隱藏雷區(qū)是transports參數(shù)。SocketIO 默認(rèn)啟用[polling, websocket]回退機(jī)制即先用 HTTP 輪詢建立連接成功后再升級(jí)到 WebSocket。但在某些企業(yè)內(nèi)網(wǎng)或老舊防火墻下輪詢請(qǐng)求可能被攔截或限速導(dǎo)致連接建立緩慢。我們線上環(huán)境就遇到過用戶點(diǎn)擊“開始聊天”按鈕后等待 8 秒才出現(xiàn)輸入框。解決方法是強(qiáng)制只用 WebSocketconst socket io(https://chat.example.com, { transports: [websocket], // 禁用 polling直連 WebSocket upgrade: false // 禁用自動(dòng)升級(jí)已強(qiáng)制 WebSocket });當(dāng)然這要求服務(wù)端必須支持 WebSocket即 Nginx 配置正確否則會(huì)直接連接失敗。我們選擇此方案是因?yàn)槟繕?biāo)用戶環(huán)境可控公司內(nèi)部網(wǎng)絡(luò)且犧牲一點(diǎn)兼容性換來確定性的低延遲。提示用chrome://net-internals/#sockets可查看 Chrome 所有 WebSocket 連接的詳細(xì)狀態(tài)包括 ping/pong 時(shí)間戳、幀收發(fā)統(tǒng)計(jì)。這是診斷心跳問題的終極工具比看日志直觀十倍。4. Nginx 部署時(shí)proxy_buffering off為何比proxy_http_version 1.1更致命當(dāng)聊天室功能全部跑通我們信心滿滿地部署到生產(chǎn) Nginx。配置照搬網(wǎng)上教程upstream chat_backend { server 127.0.0.1:8000; } server { listen 443 ssl; server_name chat.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location /ws { proxy_pass http://chat_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://chat_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }測(cè)試發(fā)現(xiàn)消息能發(fā)但所有消息都延遲 3~5 秒才顯示。Wireshark 抓包顯示服務(wù)端PONG幀發(fā)出后Nginx 并未立即轉(zhuǎn)發(fā)給客戶端而是緩存了幾秒才吐出。根源在于proxy_buffering。Nginx 默認(rèn)開啟代理緩沖proxy_buffering on它會(huì)將上游響應(yīng)體暫存到內(nèi)存或磁盤 buffer 中等 buffer 滿或響應(yīng)結(jié)束才一次性轉(zhuǎn)發(fā)。這對(duì) HTML 頁面友好但對(duì) WebSocket 這種實(shí)時(shí)流式協(xié)議是災(zāi)難——每一幀消息都被卡在 buffer 里直到超時(shí)或 buffer 滿。解決方案極其簡(jiǎn)單卻常被遺漏location /ws { proxy_pass http://chat_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # ?? 關(guān)鍵禁用緩沖 proxy_buffering off; # 可選設(shè)置超時(shí)避免長連接被誤殺 proxy_read_timeout 86400; proxy_send_timeout 86400; }proxy_buffering off必須顯式聲明。即使proxy_http_version 1.1已設(shè)Nginx 仍會(huì)默認(rèn)緩沖響應(yīng)體。我們?cè)詾閜roxy_http_version 1.1就夠了結(jié)果線上跑了兩天才發(fā)現(xiàn)消息延遲回滾配置后延遲消失。另一個(gè)易混淆點(diǎn)是proxy_read_timeout。很多教程寫proxy_read_timeout 3005 分鐘這在 WebSocket 場(chǎng)景下是危險(xiǎn)的。因?yàn)?WebSocket 連接一旦建立理論上永不關(guān)閉。若設(shè) 300 秒Nginx 會(huì)在空閑 5 分鐘后主動(dòng)斷開連接導(dǎo)致用戶莫名其妙掉線。正確做法是設(shè)為極大值如86400秒24 小時(shí)或依賴客戶端心跳?;睢4送釹SL 配置也有講究。我們最初用 Lets Encrypt 的默認(rèn)配置ssl_protocols TLSv1.2 TLSv1.3;但某次安全掃描提示“TLSv1.2 不夠安全”。升級(jí)到TLSv1.3 only后部分 Android 7.0 以下設(shè)備無法連接。最終妥協(xié)為ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers off;即保留 TLSv1.2 兼容性但禁用所有弱密碼套件。安全與兼容的平衡永遠(yuǎn)是部署環(huán)節(jié)的主旋律。最后是靜態(tài)資源優(yōu)化。聊天室前端是個(gè)單頁應(yīng)用SPAindex.html里引用main.js和style.css。我們?cè)裭ocation /塊寫成location / { proxy_pass http://chat_backend; }結(jié)果所有靜態(tài)文件請(qǐng)求如/static/main.js都被轉(zhuǎn)發(fā)到后端 Python 進(jìn)程白白消耗 CPU。正確做法是分離動(dòng)靜態(tài)# 靜態(tài)資源直接由 Nginx 服務(wù) location /static/ { alias /var/www/chat/static/; expires 1y; add_header Cache-Control public, immutable; } # 其他請(qǐng)求走后端 location / { proxy_pass http://chat_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }expires 1y和Cache-Control public, immutable讓瀏覽器永久緩存靜態(tài)資源下次訪問無需請(qǐng)求服務(wù)器。我們實(shí)測(cè)首屏加載時(shí)間從 1.2 秒降至 320 毫秒。注意alias末尾的/必須與location的/static/嚴(yán)格匹配。若寫成alias /var/www/chat/static;缺/Nginx 會(huì)嘗試讀取/var/www/chat/staticstatic/main.js導(dǎo)致 404。5. 從零構(gòu)建可復(fù)現(xiàn)的部署清單一份能直接粘貼的腳本前面講了那么多坑現(xiàn)在給你一份經(jīng)過生產(chǎn)環(huán)境驗(yàn)證、可直接復(fù)制粘貼運(yùn)行的完整部署清單。它包含Python 環(huán)境準(zhǔn)備、Redis 安裝、Gunicorn 啟動(dòng)、Nginx 配置、SSL 證書申請(qǐng)。所有命令均標(biāo)注了適用系統(tǒng)Ubuntu 22.04 / CentOS 7和注意事項(xiàng)。5.1 環(huán)境初始化Ubuntu 22.04# 更新系統(tǒng) sudo apt update sudo apt upgrade -y # 安裝 Python 3.10 和 pip sudo apt install -y python3.10 python3.10-venv python3.10-dev # 安裝 Redis內(nèi)存數(shù)據(jù)庫用于消息總線 sudo apt install -y redis-server sudo systemctl enable redis-server sudo systemctl start redis-server # 創(chuàng)建項(xiàng)目目錄 sudo mkdir -p /opt/chat-room sudo chown $USER:$USER /opt/chat-room cd /opt/chat-room # 初始化虛擬環(huán)境 python3.10 -m venv venv source venv/bin/activate # 安裝依賴requirements.txt 內(nèi)容見下文 pip install --upgrade pip pip install -r requirements.txtrequirements.txt內(nèi)容精簡(jiǎn)版僅核心依賴Flask2.3.3 Flask-SocketIO5.3.6 eventlet0.35.2 redis4.6.0 gunicorn21.2.0注意eventlet0.35.2是目前與 Python 3.10 兼容最穩(wěn)定的版本。更高版本在某些 Linux 發(fā)行版上編譯失敗。5.2 后端代碼骨架app.pyfrom flask import Flask, render_template from flask_socketio import SocketIO, emit, join_room, leave_room import os app Flask(__name__) app.config[SECRET_KEY] os.environ.get(SECRET_KEY, dev-key-change-in-prod) # 使用 Redis 作為消息總線 socketio SocketIO( app, message_queueredis://127.0.0.1:6379/0, cors_allowed_origins*, ping_interval10, # iOS 友好 ping_timeout3 ) app.route(/) def index(): return render_template(index.html) socketio.on(connect) def handle_connect(): print(Client connected:, request.sid) socketio.on(disconnect) def handle_disconnect(): print(Client disconnected:, request.sid) socketio.on(join) def on_join(data): room data[room] join_room(room) emit(status, {msg: fJoined {room}}, roomroom) socketio.on(message) def handle_message(data): # 廣播給所有房間成員除自己 socketio.emit(message, { user: data.get(user, anonymous), text: data[text] }, broadcastTrue) if __name__ __main__: socketio.run(app, host127.0.0.1, port8000, debugFalse)5.3 Gunicorn 啟動(dòng)腳本start.sh#!/bin/bash # 保存為 /opt/chat-room/start.sh賦予執(zhí)行權(quán)限chmod x start.sh cd /opt/chat-room source venv/bin/activate # 啟動(dòng) Gunicorn4 個(gè)工作進(jìn)程 gunicorn \ --workers 4 \ --worker-class eventlet \ --worker-connections 1000 \ --timeout 30 \ --keep-alive 5 \ --bind 127.0.0.1:8000 \ --bind 127.0.0.1:8001 \ --access-logfile /var/log/chat/access.log \ --error-logfile /var/log/chat/error.log \ --pid /var/run/chat/gunicorn.pid \ --daemon \ app:app echo Chat room started with PID $(cat /var/run/chat/gunicorn.pid)5.4 Nginx 完整配置/etc/nginx/sites-available/chat.confupstream chat_backend { server 127.0.0.1:8000; server 127.0.0.1:8001; } server { listen 80; server_name chat.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name chat.example.com; # SSL 證書使用 Certbot 自動(dòng)生成 ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # WebSocket 路徑 location /ws { proxy_pass http://chat_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # ?? 關(guān)鍵禁用緩沖 proxy_buffering off; # 長連接超時(shí)24 小時(shí) proxy_read_timeout 86400; proxy_send_timeout 86400; } # 靜態(tài)資源 location /static/ { alias /opt/chat-room/static/; expires 1y; add_header Cache-Control public, immutable; } # 其他請(qǐng)求走后端 location / { proxy_pass http://chat_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }啟用配置sudo ln -sf /etc/nginx/sites-available/chat.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx5.5 SSL 證書自動(dòng)化Certbot# 安裝 Certbot sudo apt install -y certbot python3-certbot-nginx # 獲取證書需確保域名 DNS 已解析到本機(jī) IP sudo certbot --nginx -d chat.example.com # 自動(dòng)續(xù)期Certbot 會(huì)自動(dòng)添加 cron 任務(wù) sudo certbot renew --dry-run這套流程我們?cè)谌齻€(gè)不同客戶現(xiàn)場(chǎng)部署過從執(zhí)行第一條apt update到用戶能打開https://chat.example.com發(fā)送第一條消息平均耗時(shí) 12 分鐘。關(guān)鍵在于所有配置項(xiàng)都經(jīng)過真實(shí)環(huán)境壓力測(cè)試而非理論可行。比如--worker-connections 1000是我們用wrk模擬 2000 并發(fā)連接后觀察到 eventlet worker 穩(wěn)定運(yùn)行的臨界值ping_interval10是 iOS 設(shè)備實(shí)測(cè) 100% 不掉線的最小間隔。最后分享一個(gè)血淚教訓(xùn)某次部署后用戶反饋“消息發(fā)出去沒反應(yīng)”。我們查日志、抓包、看 Redis monitor一切正常。直到一位前端同事說“我打開控制臺(tái)看到WebSocket is already in CLOSING or CLOSED state”。原來是他本地開發(fā)時(shí)Chrome 擴(kuò)展如廣告屏蔽器劫持了 WebSocket 連接注入了非法幀導(dǎo)致連接異常關(guān)閉。解決方案在index.html的head中加入meta http-equivContent-Security-Policy contentdefault-src self; script-src self unsafe-inline; connect-src self wss:;connect-src self wss:明確允許 WebSocket 連接到同源wss://阻止第三方腳本隨意建立連接。這行 meta 標(biāo)簽救了我們兩次線上事故。部署不是終點(diǎn)而是持續(xù)觀測(cè)的起點(diǎn)。上線后我們用 Prometheus Grafana 監(jiān)控三項(xiàng)核心指標(biāo)socketio_connections_total當(dāng)前連接數(shù)、redis_connected_clientsRedis 客戶端數(shù)、gunicorn_workers活躍 worker 數(shù)。當(dāng)連接數(shù)突降 50%或 Redis 客戶端數(shù)歸零警報(bào)立刻觸發(fā)。真正的穩(wěn)定性藏在每一行配置背后也藏在每一次故障復(fù)盤之中。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久色资源| 丁香情色五月| 播五月丁香六月| 99热插| 日韩婷婷五月| 日韩三及成人AV片| 99视频免费播放| www.99日本| 色丁香五月婷婷婷| 婷婷激情九月| 美国天天操无码| 狠狠穞A片一區二區三區| 丁香五月婷婷色播艳门照| 91人妻人人做人碰人人爽九色| 亚洲无AV在线中文字幕| 五月亭亭六月天| 人人摸人人干人人做| 欧美六月| 日韩天堂久久| www.wuyuetian啪啪| 色五月五月婷婷| 婷婷五月AV| 五月丁香久久综合| 99熟女视频| 天堂在线婷婷| 在线色婷婷| 亚洲精品一区中文字幕乱码| 五月丁香影院| 97人人操人人爽| 欧美色爱五月天| 五月丁香六月婷综合成人综合| 色综色五月天婷婷| 天天射天天射一道本日本社区| 国产探花一片区| 熟妇内谢69XXXXXA片| 99热这里都是精品| 欧美影院| 99人妻碰碰碰久久久久视| 免费试看小视频 99| 久婷五月| 婷婷在线播放av| 色婷婷综合综合网| 五月丁香偷拍| sewuyuetingtingiii| 亚洲偷| 久久九九国产精品怡红院| 26uuu成人网| 五月情综合| 六月丁香啪啪啪| www.91AV.COM| 婷婷五月,偷窥偷拍网| 久久久91精品| 老师把我爽高潮了免费A片| 亚洲成人影视在线| 色婷婷狠狠久久综合五月 | 激情五月天开心| 偷拍九九热| 婷婷亚洲综合| 综合网五月| 99热日本| 色色五月婷婷| 91干婷婷| 91久久久久久久91| 操操啪| 欧美视频五区| WWW.夜夜操.com| 高清无码.com| 日日想日日夜日日操| 超黄亚洲瑟瑟网站| 丁香六月无码| 色婷婷色婷婷五月| 婷婷五月丁香91| 久婷婷婷| 精品一二三区久久AAA片| 俺也去色| 99碰在线视频| 婷婷五月天激情四射| 99精品在线播放| 五月丁香激情啪啪| 激情五月五月五月婷婷| 五月亭亭六月天| 美女丁香五婷婷| 天天操屄网| 精品国产a| 中文字幕网伦射乱中文| 高清国产AV| 婷婷色五月开心五月| 成人av在线网站| 欧美日综合| 思思久久99热| 五月开心深深爱激情综合| 婷婷狠狠干| 大香蕉天堂| 九九视频在线观看| 艹色18p| 五月天丁香欧美激情| 另类激情五| 超碰人人干| 激情婷婷丁香五月天| 超碰99热精品| 精品久久二6| 亚洲综合丁香五月| 另类图片激情五月| 婷色天堂| 香蕉国产2013| 九一99| 久久亚洲天堂| 蜜桃婷婷丁香综合久久开心亚洲| 五月丁香六月婷婷啪啪| 天天爽天天草| 99激情| 天天狠狠六月婷丁香影院| 婷婷激情综合| 91男同视频| 91九色PORNY中文啦| 激情久久久久| 99re热视频这里只精品| 97香蕉碰碰人妻国产欧美| 99re欧美精品| 五月婷丁香花| 五月丁香激情综合啪啪| AV在线免费观看不卡| 97欧美在线| 色欲五月天| 四月丁香五月婷婷久久| 91男同视频| 人人性久久| 色婷婷成人在线| 亚洲激情另类| 亚洲AV成人片无码网站| 国产激情av| 亚洲日韩乱码一区二区三区四区| 综合色色婷婷| 99爱视频| 婷婷五月丁香性爱| 亚洲激情视频网| 伊人久久大香网| 一二线视频 另类| 99riAV国产精品视频| 99热精品在线| 丁香五月婷婷色情综合| 天天摸天天舔天天天天爽| 99热免费| 一区色色色色网| 人人爽欧美婷婷久久久五月丁香| 成人做爰黄A片免费看直播室男男| 人人九色| 成人丁香五月天| 男女啪啪做爰高潮无遮挡| 草榴视频网| 亚洲婷婷成人五月天| 国产亚洲在线观看| www.99在线| 婷婷五月天激情文学| 天天爽夜夜操| caobi四区| 中文字幕在线不卡| 欧美熟女99| 人妻无码精品一区| 九九激情视频| 99热综合网| 日本二级毛片二级毛片| 欧美噜一噜| 99久热| 九九re精品视频在线观看| 国产裸舞表演WWWW| 天天久久九九| 日本天天操| 久久久久久人妻| 久久激丁香| 亚洲综合色网站| 五月婷婷在线视频观看| 五月天大香蕉AV| 九九热视频思思| 大地9中文在线观看免费高清| 爱射综合| 日本三级韩三级99久久| tingting五月天亚洲| 五月婷婷婷| 色色五月天网站| 天天做天天爱天天高潮| 国产avapp 网| 婷婷五月天亚洲| 六月丁香六月婷婷欧美| 色五月婷婷综合| 综合色99| 国产亚洲99久久精品| AV网站免费在线| 激情綜合網址| 久久久久这里都是精品| 久久99热这里只频精品6学生| 色婷婷中文在线| 婷婷性爱网| 成人版视频在线观看| 日韩黄色电影| 婷婷五月天中文字幕.| 婷婷五月天AV| 天天色官网| 在线观看日韩12345区| 五月丁香激情欧洲啪啪| 午夜福利8055| 丁香五月电影| 色婷婷色情| 日本波多野结衣视频| 天天谢天天操| 亚洲婷婷91丁香| 色爱五月天| 国产伊人五月天| 六月激情婷婷| 99aese| 99操| 夜夜操夜夜操| 五月天激情综合首页| 亚洲免费看片| 欧美VA在线| 五月婷婷草| 五月天婷婷网站888| 婷婷亚洲影院| 国内熟女黄色系列| 婷婷五月色情天| 丁香丁婷五月激情| 色亭亭九月| 日本九九网| 色六月丁香婷婷啪啪啪| 天堂网亚洲色图| 激情五月天小说网| 亚洲天堂热| 久久久99精品免费观看| 国产色网站| 夜夜操夜夜爽| 91丨九色|PRNY熟妇| 婷婷五月丁香基地| 五月丁香婷婷激情视频| 久久多色| 大香蕉丁香婷婷| 91九色丨国产丨爆乳| 亚洲 日韩色色| 婷婷六月香| 婷婷综合97| 成人欧美一区二区三区在线观看| 超碰69天堂| 99re在线视频| www夜夜操comwww| 婷婷射图| 青青999| 亚洲五月天婷婷| 亚洲人人操BD| 都市激情五月婷婷综合| 伊人久久大香网| 搡BBBB搡BBB搡18| 狠狠干五月天| 色色色色色爱| sisi热国产| Caop在线| 超碰免费电影| 日本操天堂| 婷婷99热| 五月婷婷丁香色播网| 超碰在线91| 综合玖玖偷拍| 91伦| 久久六月婷婷| 五月婷色| 天天干狠狠| 极品人妻VideOssS人妻| 伊人五月成人| 99色色热| 六月丁香啪啪| 色综合久久88色综合天天99| 亚洲色图81p| 久久国产一区二区三区| 99热这里是精品| 九九九色综合| www.久久久久| 综合五月婷婷| 五月天狠狠| 亚洲视色| 深夜激情网| 99在线精品视频免费| 久婷婷五月综合欧美| 天天碰夜夜操| 亚洲乱码日产精品BD| 另类小说激情五月天| 天天摸天天舔天天爽| 91青娱乐青青草| 五月婷婷香蕉| 激情98色婷婷五| 色五月网址| 九九色综合九九色| 婷婷九月| 日日干天天| 色综合久久综合中文综合网| 五月天婷婷在线AN| 色人妻五月| 99热在线中文字幕| 六月五月婷婷| 韩国三级五月天婷婷。| 六九色综合婷婷五月天| 综合99久久| 粉嫩av蜜桃av蜜臀av| 98色花堂98t.R| 婷婷色在线视频| 国产精品电影网| 97在线刺激| 久操激情| 久久性爱视频| 色情婷婷久久五月天| 97成人在线视频| 九九九九中文字幕| 久9久9久9久9久9久9| 女婷久久| 激情婷婷丁香色情五月天| 五月丁香AV、伊人业余、性色熟妇| 五月天婷婷网站| 99.色| 日日插日日干| 99综合在线| site:pnnrt.com| 国产做爰视频免费播放| 97人妻碰碰碰碰碰久久久久久| 热久69| 五月丁香激情四射综合| 夜夜天天久久婷婷| 久热只有精品| 色色热| 97搞在线| 亚洲永久免费| 激情五月婷婷色播网| www.99视频| 色玖玖综合网| 91干婷婷| 激情久久综合| 色丁香五月婷婷在线| 四月丁香五月婷婷久久| 俺去也婷婷| 最新无毒无码AV| 丁香花婷婷五月天| 亚洲色婷婷色| 五月婷婷之婷婷| 男女99免费视频| 无人区码一码二码三码医生系列| 另类激情五| 综合激情五月丁香9999久久精| 五月天中文网| 在线综合网| 精品日本视频444| 色天使色婷婷| 亚洲va在线| 婷婷久久丁香五月| 99re8热精品免费视频| 激情丁香六月| 人人摸人人干人人做| 91AV婷婷| 丁香五月色情av| 综合激情五月丁香| 夜夜撸日日操| 五月丁香色停停啪啪啪| 亚洲综合激情五月久久| 丁香五月伊人| 好吊兆人妻| 五月婷婷AV| 五月丁香六月情亚洲| 日本色色图| 香蕉影院色| 26uuu欧美日本| 天天日日| 色婷婷在线综合色播网| 久热9| 在线一起草av| 亚洲 小说 欧美 激情 另类| 天天插天天日| 色伊人婷婷| 五月婷婷影| 无码少妇高潮喷水A片免费| 激情综合网五月| 亚洲国产色色| 小香蕉av| 另类图片五月天婷婷| 色色激情网| 九九九AAA热视频| 91丨熟女丨首页| 五月婷婷成人| 4399精品一区二区| www.sezonghe| 国产色99| 五月天大香蕉av| 99国产小视频2013| 色婷婷五月天偷拍| 九九色色| 伊人91| 色五月欧美| 99操逼| 婷婷丁香91综合| 激情欧美婷五月| 丁香五月天婷婷激情| 99热加勒比| 在线观看中文字幕| 色色五月综合| 丁香六月婷婷综合缴| 狠狠操狠狠色| 丁香六月亚洲综合 | 无码yw| 91人人爽久久涩噜噜噜| 激情色情五月天| www色五月天| 人妻第九页| 在线看片h站| 99热这里只有精品国产免费| 久99| 色综合五月婷婷狠狠干| 激情五月丁香五月色| 欧美综合激情五月丁香| 少妇人妻丰满做爰XXX| 再次出发二| 婷婷五月激情中文字幕| 色五月开心五月激情五月| 九色婷婷| 色综合久久天天综合网| 久草免费福利视频| 五月天桃色深爱网| 久久免费操| 美欧日韩国产成人在战| 精品久热| 日本精品久久久久中文字幕| 欧美丁香五月天| 玖玖91| 岛国AV网| 99ri久久| 天天色播| 久久久人妻系列| 亚洲天堂制| 久久五月综合| www.色99| 中文字幕一色哟哟哟哟| 天天狠狠干| 99人人看| 亚洲黄色影视| 丁香花大香蕉婷婷综合| 婷婷激情五月综合| 在线色色| AA片在线观看视频在线播放 | 站长推荐无码播放| 搡BBBB搡BBB搡18| 99久久成人| 永久天堂日本| 久久婷婷五月综合| 人妻操操色| 国产伊人大香蕉| 啪色综合| 99在线观看免费精品视频| 1024在线一区| 欧美日本黄色| 森林影视大全,最好看的2019年视频 | 涩综合婷婷| 天天日人人| 99ri视频在线观看| 二色av| 婷婷五月天偷拍| 日本99在线| 欧美激情综合色综合啪啪五月| 91操操操| 亚洲AV网址| 久久人妻视频| 思思热在线视频精品| 大香蕉久操| 一级片操逼视频| www.色五月| 色综久久AV| 亚洲色频| 丁香五月天视频| 欧美丁香婷婷五月天| 婷婷五月激情网| 亚洲精品a成人在线播放| 日日爽夜夜爽| 色婷婷影音| 五月婷婷影| 久久五月婷6 9| 九九在线视频| 丁香欧美| 丁香婷婷精品视频| 日韩欧美一道四区中文字幕| 亚洲精品久久久无码| 神马欧美精| 日本婷婷综合精品| 狠狠色狠狠| 婷婷丁香六月天| 亚洲色99| 成人综合视频在线| 五月天激情AV| 五月丁香婷婷激情久久| 66精品国产成人| 五月久久| 六月丁花香啪啪激情欧美| 黄网免费看| 婷婷五月天六点丁香五月| 五月丁香怕怕综合| 九九伊人网| 亚洲婷婷丁香五月| 91大操| 91日韩在线| www.色9| 久久婷婷五月综合色和| 亚洲性爱99在线| 久久精彩综合视频| 色久女| 日本天堂久久| 四色五月婷婷| www.金莲av| 99成人| WWW,五月| 五月天婷婷久久| 五月天激情综合| 欧美综合激情五月天| 538在线| 五月婷婷在线丁香| 色色吧综合| 91日韩美女被插视频| 9l视频自拍九色9l黑人| 婷婷五月天成人视频| 香蕉人妻AV久久久久天天| 开心深爱激情网| 97精品综合久久| 婷婷五月激情的图片| 久久色五月天激情小说| 久久精品亚洲一级牲爱综合| 婷婷丁香五月亚洲综合网在线视频观看| 久久在这里有精品| 插插干干干色| 第四色婷婷色五月| 天天射天天射一道本日本社区 | 五月天婷婷在线播放| 激情综合亚洲色婷婷五月| 四虎婷婷五月天| 色香蕉精品五夜婷| 亚洲情综合五月天| 97爱艹婷婷开心丁香激情综合| 国产精品a无线| 婷婷亚洲综合| 97 天堂| 亚洲久久天堂| 色综啪啪啪啪啪啪| 97婷婷在线视频| 97人妻碰碰碰久久久久-最近国语高清| 亚洲色区17| 91丨人妻丨国产丨丝袜| 国产精品视频免费看| 99精品在线观看视频| 欧美性猛交99久久久99| 五月丁香色情| 亚洲激情高潮| 5月婷婷五月天| 婷婷情爱五月天6| h亚洲| 久久9久| 人妻少妇色综合| 丁香五月综合| 99热免费18| 激情五月丁香色色去久久| 激情综合色婷婷啪啪六月天| 97超碰综合| 日本的α片xxxwww| 人人摸人人干人人做| 婷婷五月色情天| 热五月婷婷| 深爱五月婷婷| 99日热在线视频| 伊人久久中文网| 午夜色婷婷| 千人斩操逼| AV天堂婷婷五月天| 丁香五月情| 婷婷综合在线| 婷婷丁香婷婷97| 99久久久久久www| 色综合色婷婷色伊人| 五月婷婷免费视频| 婷婷色操| 人妻丰满精品一区二区A片| Av中文在线| 九九亚洲综合| 五月久久亚洲| 九九九色综合| 超碰操日| 天天爽人人综合免费7799| 婷婷开心青青草| 狠狠高潮精品亚洲1| 婷婷五月情| 九久久九精品视频| 熟女激情五月天| 91热久88| 五月丁香久人妻中文| 色人妻五月| 婷婷五月丁香久久| www日本熟妇99在线视频| 色色色婷婷五月| 开心五月深爱五月婷| 激情图片婷婷丁香五月| 国产精品第一国产精品| 国产老熟妇亲子乱对白| 天天爽天天爽| 欧美激情丁香五月| 亚洲色婷婷色| 丁香五月网在线观看| 婷婷久久色| 久99热| 五月婷久久综合| 五月六月播婷婷| 免费不卡狠操美女视频网| 激情五月综合| 九九色播五月丁香| 一本综合丁香日日狠狠色| 婷婷99视频精品| 日本女色人人| 国产精品久久99| 久久婷婷五月天蜜桃| 97色吧| 久久久8| 精品无码99| 五月天激情综合| 97碰碰视频| 激情综合另类| 99视频在线| 婷婷丁香九月| 色婷婷综合视频| 国产毛片精品一区二区色欲黄A片| 美国不卡视频| 天天爽天天摸| 操B视频在线播放| 伊人五月婷婷| 99热老网站| 国精产品一区二区三区| 五月丁香狠狠| 国产精品人成A片一区二区| 无码激情| 97色色婷婷| 91 九色 入口| 婷婷五亚洲| 精品亚洲国产成AV人片传媒| 五月天伊人av| 九九这里都是精品| 另类专区在线观看| 日韩性视频| 婷婷激情五月视频| 亚洲色无码| 桃色成人网| 色婷婷综合中心| 99色在线| 婷婷五月天激情在线观看 | 色五月首页| 亚洲精品色| 久久一级免费黄色片| 新精品99| 综久久久| 五月丁香婷婷开心| 色色六月| 五月婷婷丁香在线| 亚洲久艹| 五月婷婷综合丁香视频| 午夜福利8055| 色色色在线观看| 日本一毛片| 亚洲免费99| 五月天成人免费视频| 激情五月天婷婷丁香| 五月婷婷亚洲| 九月婷婷激情| 色色五月天婷婷| 俺也去婷婷五月天第五色| 日日干日日| peg 2区三区四区的| 亚洲妇女熟BBW| 五月丁香综合啪啪対白| 9视频在线成人网站| 五月婷婷激情四月| 99热欧美精品| 久久色区| 欧美va视频不用播放器的va视频网| 国产成人精品一区二三区熟女在线| 色五月 激情婷婷 综合五月天| 午夜少妇在线观看视频| 九九九九九九九热| 97五月综合网| 婷婷天天日婷婷| 五月婷婷久久激情| 九97免费视频| 亚洲视频五区| 日韩无码一区二区三区四区| 天天色中文字幕女优AV| 九九热免费视频| 国产免费一区二区在线A片视频| 一级黄色影片| 洗浴中心操B视频| 日韩成人电影在线播放| 久久久久人妻| 五月久视频| 91久久婷婷| 国产精品久久久久久喷浆| 色狠狠综合入口| 五月丁香婷中文| 99精品偷自拍| 丁香五月天激情视频| 丁香激情久久| 91干婷婷| 中文无码婷婷| 青青福利网| 综合色网站| 亚洲人妻av| 深爱婷婷丁香五月激情| 丁香婷婷网| 欧美黄色一级录像| 高清视频一区| 久久婷婷五月综合啪| 大香蕉五月天婷婷丁香91| 国产精品美女久久久久AV超清 | www.夜夜| 五月婷婷丁香在线| 人妻操逼视频。| 九日日夜夜69| 亚洲欧洲另类| 深爱激情丁香五月| 高潮毛片遮挡费高一百度| 色九月丁香婷婷蜜桃在线观看| 综合色色网| 五月婷婷五月天亚洲无码| 亚洲最大在线| 国产激情一区| 思思热在线视频精品| 99热这里只有精品免费观看| 五月天五月色婷婷综合| 久久嘟嘟丁香| 99九九这里有免费视频| 天天操人人干| 五月天婷婷无码| 欧美丁香六月激情视频| 久热欧美| 天久久久久| 色爆五月| 五月婷婷综合在线| 91无码高清| 婷婷五月天激情五月天网站| 性爱网久久| 91狠狠色丁香| AV六月丁香| 老美AA片| 五月丁香啪啪啪| 玖玖爱资源站| 激情五月天社区| 色五月婷婷DVD| 五月综合视频在线| 伊人www22综合色| www.九月婷婷丁香.com| 国产一二区爆乳_1国产日韩一区二区三-成人AV | 99视频91| 丁香五月婷婷婷桃花影院| 久久无码成人| 亚洲V国产V欧美V久久久久久| 大香蕉五月天婷婷| 久久狠婷婷| 久久九九激情五月天| 免费看欧美成人A片无码| www.zbzhongsen.com| 国产性爱一级| 婷婷日欧美在线观看| 亚美欧色影院| 99热这里只有免费精品| 婷婷色Av| 思思热99在线| 思思热在线精品视频网站| 六月丁香视频网站| 超碰99在线| 97干在线| 色亚洲无码| 亚洲激情AV| 五月天婷婷久久| 成人亚洲精品| 久久丁香五月婷婷| 久草五月| 精品在线| 26uuu色噜噜精品一区| 超碰在线91| 婷婷五月色| 婷婷五月深情丁香深爱日韩| 色婷婷电影| 在线观看熟女少妇| 婷婷色五月亚洲| 成人五月天在线视频在线观看| 婷婷欧美色| 久久综合热17c| 五月亭亭六月激情| 久热a| 天天视频亚洲| 天天影院色| 国产精品国产| 色色五月丁香| www.99热| 亚洲乱码日产精品BD| 疯狂做受XXXX高潮A片| 五月丁小婷婷激情四射| 中文字幕成人日韩| 成人色图情色成人网 www.5b5b5bcom 五月天| 久热久re| 中文精品在| 久久久妻人人人| 99热精品网| 婷婷丁香五月天在线| 97色色综合| www.色9| 婷婷五月天AV| 99精品偷自拍| 日韩有码一区| 色婷婷五月色| 色色亚洲无码| 99免费视频网| 婷婷99狠狠躁天天| 99色综合| 久久38视频| 日韩在线视频中文字幕| 九九热这里只有精品556| 婷婷五月天伦理| 五月丁香六月婷婷综合网缴情| 夜夜骑天天操| 狠狠草狠狠草| 青青草青青草五月天| 人人操91色| 亚洲欧美婷婷五月色综合| 色婷婷欧美在线| 天天插AV丝袜中| 大香蕉九操| 成人无码精品1区2区3区免费看| 久草免费福利视频| 碰碰91| 先锋资源 996| 99九九视频| 极品少妇XXXX精品少妇偷拍| av在线观看网址| 久久婷婷青草五月天| 色五月婷婷天天操夜夜操| 婷婷色操| 国产看真人毛片爱做A片| 久久婷婷五月综合啪| 狠狠88综合久久久久噜噜噜| 丁香五月婷婷日本| 色五月激情五月开心五月| 激情婷婷激情在线不卡| 五月丁香六月婷| 五月天堂在线| 99re思思热久久| 婷婷天天五月天| 国产人妻操逼| 激情五月婷婷啪啪| WWW.五月天9999| 色色com| 天天日天天插| 99热播放| 婷婷五月天黄色小说| 久久久久久久人妻| av线电影| 婷婷丁香激情| 色五月激情五月天| 9久久久| 六月丁香五月激情网| 五月久久婷婷丁香| AV在线免费观看不卡| 五月婷婷开心亚洲无| 亚洲色情在线| 久久caop| 午夜丁香丁香婷婷| 97色色综合| 久久丁香综合精品综合| 夜夜躁狠狠| 亚洲啪啪视频| 97AV人人插人人操| 国产熟女日日骚五月丁香爱| 玖玖热视频| 9精品视频在线| 无月播播激情在线观看视频| 欧美三级A做爰在线观看| 性视频久久| 色婷婷的五月天| 久综合4| 婷婷色5月天在线。| 91狠狠色| 秋霞AV淫| 夜夜骑天天操| 在线中文字幕免费视频| 婷婷五月天激情偷拍| 久久九九网| 婷婷激情综合色五月久久图片| 99精品久久久久久久婷婷久久 | 欧美韩国日本| 99开心五月五月丁香激情| 九九无码| 青青久久大香蕉| 婷婷五月天成人小说| 亚洲精品一二三| 婷婷六月丁香激情综合| 99视频只有精品| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 深爱激情四射| 狠狠五月天| 婷婷偷拍网| 丁香五月电影| 五月丁香婷婷综合| 六月色色| 欧美内射AA| 大香蕉五月天| 99re久久| 亚洲激情四射| 四色综合网| 九九视频在线观看| 色色精品色| 天天干天天日天天操| 99久在线精品99re8热| 久草A片| 丁香婷婷网| 九热视频| 欧美群妇大交乱婬网| 99免费在线视频| 婷丁五月| 成人做爰A片免费看视频| 狠狠色性| 影音先锋91网站在线观看| 婷婷激情区| 亚洲av电影网站| 久久五月综合| 2015WWW永久免费观看播放| 婷婷99狠狠| 91丨九色丨白浆| 激情综合网五月丁香| 少妇激情基地| 操人91| www婷婷色情网| 岛国在线观看91| 色综合天天天天做夜夜| 久久久久久9热不雅视频| 色婷婷丁香| 99人人精品| www.91.com黄| 五月婷婷高清| 艳妇野外情欲放荡HD| 丁香 婷婷 亚洲 熟女| 成人丁香五月婷| 欧洲亚洲免费视频9| 综合亚洲色色| 97人碰人操| 婷婷天天婷婷天天澡| 日韩色五月| 日本三级日本三级99| 另类丁香五月天区图| 五月黄色婷婷| 91大神操美女| 丁香五月成人网| 五月丁香六月合| 九九综合88| 亚洲国产成人在线| 五月天婷婷网站| 涩婷婷视频快播人妻| 91婷色| 狠狠va| 99热大| 大香蕉综合| 日本成人噜噜噜噜噜| 夫妻超碰在线| 久久99综合| 一级A片天天操夜夜操| 色综合视频| 成人丁香五月| 激情五月天激情小说| 97香蕉碰碰人妻国产欧美| 黑人糟蹋人妻HD中文字幕| 婷婷六月五月| 九九国产视频| 亚洲日本三级片| 久婷五月| 停停五月天激情网| 97视频.干com| 久久综合婷婷激情| 久久停停超碰| 五月丁香黄色| 91精品婷婷国产综合久久| 成人婷婷色综合| 五月丁香婷婷久久| 婷婷五月天激情五月天网站| 丁香五月中文字幕| 婷婷丁香激情五月天色色色| 色五月激情| 99热的无码| 99啪啪| 日本黄色精品| 极品人妻VIDEOSSS人妻| 噜噜狠狠色综合久| 99性感视频| 九九激情网| 操比激情五月| 搡BBBB搡BBB搡五十| 99碰碰视频| 激情五月天色婷婷| 激情综合4月| 五月天激情四射网站| 丁香五月之久操视频| 天天色宗合| 99热这里只有精品在线观看| 五月婷婷丁香大陆免费| 91丨九色丨熟女|新版| 丁香五月激情五月| 婷婷久久综合| 婷婷久久亚洲| 久久人人妻| 亚洲丁香网| 国产永久一二一起草| 激情99| 国产精品24r| 亚洲1区| 亚洲成人一区| 婷婷五月色| 五月婷婷亞洲中文| 国产精品五月丁香| 五月激情视频| 99狠狠操一| 97超级碰人人| 亚洲色无码A片一区二区麻豆| 日本超碰在线| 色婷婷a v| 亚洲热综合| 丁香五月天成人| 丁香六月色情| 综合五月丁香久久| 丁香五月91| 一本色道久久88加勒比—| 嫩草视频。| 99人人爽| 97操操网| AV片一区在线观看| 疯狂做受XXXX高潮A片| 五月亭亭直播| 东京热免费视频| 人妻激情综合| 97色在线观看视频| www.色五月| 久久人妻精品| 丁香五月婷婷在线| 五月婷婷官网色| 色色哒五月婷婷六月丁香| 99热这里只有精品 搜| 婷婷五月天日逼| 天天日狠狠| 激情综合网五月天天| 天天爱天天日| 日本激情ⅩXX免费视频| 天天人人综合| 天天拍夜夜撸| 激情婷婷五月天伊人在线观看| 久操b网| 天天摸天天舔天天爽| 思思热思在线精品视频| 色情五月丁香婷婷网| 六月婷婷之青青草| sisi热国产| 五月丁香六月色情网欧美| 婷婷五月天亚洲色| 99热大片| 丁香5月婷婷| 丁香五月亚综合图片| 五月天色社区| 欧美五月婷婷| 一起草Av| 99亚州综合精品成人网| 五月婷婷五月天| 国产精品第一国产精品| 最近中文字幕2019视频1| 4399啪啪视频| 99久99久| 欧美啪啪网| 日本99在线视频| 婷婷伊人中文字幕| 婷丁五月| 大香蕉综合视频在线| 婷婷成人av| 欧美婷婷精品激| 日韩精品999| 国产精品久久久99视频| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 九热视频这里只有精品| 激情六月一二| 色偷偷色婷婷| 久久综合五月| 91打屁股免费看| 丁香婷婷影院| 91九色精品| 五月花婷婷在线精品视频| 99热这里只有精品96| 亚洲激情.com| 伊人五月婷婷| www.狠狠| 色婷婷狠狠18yy| 狠狠色大香蕉| 激情五月综合色| 婷婷五月天视频小说| 这里只有精品1| 99九色视频在线观看| 无码少妇高潮喷水A片免费| 五月婷婷玖玖综合玖玖爱| 婷婷五月天丁香社区| 这里有精品99| 十月丁香九月婷婷综合| 久99视频在线观看| 极品少妇高潮啪啪AV无码| 五月天婷婷网站| 日韩av在线电影| 婷婷六月丁香色| 伊人五月综合网| 婷婷五月天激情小说| 天堂呦 呦百度搜索-百度搜索| 九九这里是免费的视频5| 五月视频日本免费观看| 狠狠草狠狠草| 五月花婷婷| 另类图片五月天婷婷| 日本高清久久| 99热这里只有是亚洲国产| 激情小说五月天| 黄色av高清| 久久五月婷| 另类激情网| 精品人妻一区| 一级黄色操B| 在线区区区| 日韩黄色电影| 人妻第九页| 99热国产精品| 天天爽夜夜爽天天爽夜夜爽| 久久婷婷视频| 色五月开心久久网| 蜘蛛女免费观看完整版高清电影| 色婷婷婷婷| 亚洲熟妇AV乱码在线观看| 天天综合五月天| 天天操天天谢| 婷婷色色五月天| 婷婷激情五月天激情小说| 激情五月深爱五月观看| 99热8| 天天日天天肏天天奸| 99精品激情| 人人干av| 五月婷婷影视| 久久综合激情五月天| 久久99热这里只频精品6学生| 影音先锋91网站在线观看| 激情婷婷| 婷婷大乡焦噜噜| 九九中文色色| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 五月丁香网站| 99成人精品视频| 99精品成人无码A片观看金桔| 久久作爱| 亭亭五月丁香五月天激情| 久久色大香蕉| 久热这里只有精品在线观看 | 欧美性生交xXxX久久久| 久久99热这里只有精品首| 亚洲午夜一区二区| 久久丁香婷| 99久久成人| 开心五月婷婷| 九九成人精品免费视频| 激情中文在线| 婷婷性爱综合| 天天色,天天日,天天做| 日本黄色一级| 婷婷丁香午夜综合影视| 欧美va在线| 影音先锋噜一噜| 婷婷久久免费| 五月婷免费视频| 99在线精品在线视频| 爱iii做iiii日| 丁香六月天婷婷色| 欧美大肥婆大肥BBBBB| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | www.99视频| 日本熟妇精品99| 91精品国产99久久久久久天美| 丁香五月激情宗合| 天天插天天插天天操| 精品成人在线观看| 99热插| 色色色色网| 激情色情五月天| 天天激情站| 五月丁香综合久久夜夜| 久久色五月天激情小说| 伊人激情综合| 婷婷色情六月| 高清av在线国产| 人人爽欧美婷婷久久久五月丁香| 日韩在线看AV| 伊人五月天婷婷| 国产一级黄色影片,| 9久热这里只有精品| 色色色色色色综合网| 五月天婷婷青青草| 91碰碰视频在线观看| 亚洲欧美另类在线23p| 日本玖玖在线| 色爱亚洲| 色爽九九| 五月天啪啪视频| 99色综合| 成人看片网站| er99免费视频在线| 婷婷婷婷午夜| 亚美欧色影院| 91视频免费后入强操| 台湾无码A片一区二区| 国产成人在线精品| 91精品综合久久久久久五月丁香| 91色色色| 六月婷婷激情| 欧美婷婷五月天综合| 色五月激情综合网站| 六月婷婷色综合| 六月丁香大香蕉| 激情综合网五月婷婷| 五月社区丁香| 97超喷视频在线观看| 深爱激情五月网| 91超级碰在线视频| 九九热精品| 玖玖资源网站最新站| 久在线综合69| 91成人看片| 婷婷五月天最新综合你懂的| 99精品国产乱码久久久人妻| 欧美性爱5月天天天看| 蜜桃婷婷狠狠久久综合| 99ri在线观看视频| 思思热在线视频观看精品| 五月丁香婷婷钟和色图| 天天日天天爽夜夜爽| www.91色| 91人人人人人| 激情婷婷六月天| 综合色久| 五月J香蕉婷婷| 秋霞AV淫| 91操色| 97精品综合久久内射| 色综合久| 激情合网婷婷| 狠狠九九婷婷韩| 夜夜夜夜夜操| 99久久免费精品| 激情综合九月| 影音先锋美国A| 99色色网| 99热思思在线观看| www99xxxx五月丁| 久久人妻视频| 99热6色| 99这里有精品视频3| 久久男人网婷婷| 欧美va在线| www,99热| 五月花婷婷在线精品视频|