亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

GatewayWorker WSS 配置實(shí)戰(zhàn):Nginx 與 Gateway 協(xié)同部署指南

GatewayWorker WSS 配置實(shí)戰(zhàn):Nginx 與 Gateway 協(xié)同部署指南 1. 項(xiàng)目概述為什么 WSS 配置成了 GatewayWorker 項(xiàng)目上線前的“最后一道關(guān)卡”GatewayWorker 是國(guó)內(nèi) PHP 社區(qū)廣泛采用的長(zhǎng)連接服務(wù)解決方案它用 Swoole 實(shí)現(xiàn)了 Gateway、BusinessWorker、Register 三進(jìn)程模型把 WebSocket 連接管理、業(yè)務(wù)邏輯處理、服務(wù)注冊(cè)發(fā)現(xiàn)做了清晰分層。很多團(tuán)隊(duì)在開發(fā)實(shí)時(shí)通知、在線客服、協(xié)同編輯、IoT 設(shè)備心跳上報(bào)這類功能時(shí)第一反應(yīng)就是上 GatewayWorker——因?yàn)樗臋n齊、生態(tài)熟、配合 ThinkPHP 或 Laravel 做業(yè)務(wù)層非常順手。但真正走到部署階段90% 的人會(huì)卡在同一個(gè)地方本地ws://跑得飛起一上生產(chǎn)環(huán)境切到wss://就連不上控制臺(tái)報(bào)錯(cuò)net::ERR_CONNECTION_CLOSED或WebSocket connection to wss://... failedGateway 日志里卻安靜得像沒這回事。這個(gè)問(wèn)題不是偶發(fā)而是有明確技術(shù)動(dòng)因的WSS 不是簡(jiǎn)單給 WebSocket 加個(gè) SSL它是建立在 TLS 協(xié)議之上的完整加密通道要求從客戶端發(fā)起請(qǐng)求到反向代理如 Nginx再到 GatewayWorker 的 Worker 進(jìn)程每一環(huán)都必須正確識(shí)別、透?jìng)鳌⒔K止或協(xié)商 TLS。而 GatewayWorker 本身不內(nèi)置 HTTPS 服務(wù)能力——它的 Worker 進(jìn)程只監(jiān)聽純 TCP 端口比如 2121所有 TLS 解密工作必須由前置組件完成。這就引出了最典型的配置失配Nginx 配置了 SSL但沒正確轉(zhuǎn)發(fā) WebSocket 升級(jí)頭或者 Nginx 轉(zhuǎn)發(fā)了但 GatewayWorker 的gateway.php配置里ssl相關(guān)參數(shù)全為 false又或者證書路徑寫錯(cuò)、權(quán)限不足、Swoole 版本不支持 TLS 1.3……每一個(gè)看似微小的疏漏都會(huì)讓整個(gè) WSS 鏈路在握手階段就靜默失敗。我最近在一個(gè)在線教育平臺(tái)的直播互動(dòng)模塊中復(fù)現(xiàn)了全部典型問(wèn)題。這個(gè)項(xiàng)目需要支撐 5000 并發(fā)學(xué)生端實(shí)時(shí)接收答題倒計(jì)時(shí)、教師端廣播白板操作、后臺(tái)監(jiān)控連接健康度——對(duì)連接穩(wěn)定性、首包延遲、斷線重連成功率要求極高。我們前期在測(cè)試環(huán)境用ws://跑通了全部邏輯但正式灰度前切換 WSS 時(shí)花了整整三天才定位到根源Nginx 的proxy_set_header Upgrade $http_upgrade;這一行被注釋掉了而開發(fā)同學(xué)誤以為“SSL 配好了WebSocket 就自動(dòng)好了”。這種認(rèn)知偏差在中小團(tuán)隊(duì)中極其普遍。所以這篇紀(jì)實(shí)不講原理推導(dǎo)也不堆砌 RFC 文檔只聚焦真實(shí)生產(chǎn)環(huán)境里你馬上會(huì)遇到的配置項(xiàng)、報(bào)錯(cuò)日志、驗(yàn)證命令和繞過(guò)陷阱的實(shí)操路徑。無(wú)論你是剛接觸 GatewayWorker 的 PHP 開發(fā)者還是負(fù)責(zé)部署的運(yùn)維同學(xué)只要你的項(xiàng)目需要對(duì)外提供wss://接口這篇內(nèi)容就能幫你省下至少 8 小時(shí)排查時(shí)間。2. 整體架構(gòu)與配置思路三層解耦是 WSS 可靠性的底層前提要理解 GatewayWorker 的 WSS 配置為什么容易出錯(cuò)必須先厘清它的標(biāo)準(zhǔn)生產(chǎn)部署結(jié)構(gòu)。這不是一個(gè)單體服務(wù)而是一個(gè)典型的“前端卸載 后端專注”的三層協(xié)作模型最外層反向代理Nginx / Apache / Caddy它是用戶直接訪問(wèn)的入口承擔(dān) SSL 證書加載、HTTP/HTTPS 請(qǐng)求終止、WebSocket 協(xié)議升級(jí)協(xié)商、負(fù)載均衡、靜態(tài)資源托管等職責(zé)。它不處理任何業(yè)務(wù)邏輯只做“流量翻譯官”。中間層Gateway 進(jìn)程它運(yùn)行在獨(dú)立端口如 8282負(fù)責(zé)維持與所有客戶端的長(zhǎng)連接做心跳檢測(cè)、連接數(shù)統(tǒng)計(jì)、IP 黑白名單、消息廣播等網(wǎng)關(guān)級(jí)功能。它通過(guò)register進(jìn)程與 BusinessWorker 通信但自身不解析業(yè)務(wù)數(shù)據(jù)。最內(nèi)層BusinessWorker 進(jìn)程它監(jiān)聽另一個(gè)端口如 2121只接收來(lái)自 Gateway 的已認(rèn)證、已解包的業(yè)務(wù)消息例如{type:submit_answer,data:{...}}執(zhí)行數(shù)據(jù)庫(kù)操作、調(diào)用第三方 API、觸發(fā)事件總線等。它完全不知道 TLS 是什么只認(rèn) TCP 流。WSS 的核心難點(diǎn)就在于這三層之間存在兩個(gè)關(guān)鍵“協(xié)議轉(zhuǎn)換點(diǎn)”客戶端 ? Nginx這是標(biāo)準(zhǔn)的 HTTPS WebSocket Upgrade 流程。客戶端發(fā)送GET /websocket HTTP/1.1Upgrade: websocketSec-WebSocket-Key頭Nginx 必須原樣透?jìng)鬟@些頭并返回101 Switching Protocols同時(shí)將后續(xù)二進(jìn)制幀流持續(xù)轉(zhuǎn)發(fā)給后端。Nginx ? GatewayWorker這里必須是明文 TCP 連接。Nginx 解密完 TLS 后把原始的 HTTP Upgrade 請(qǐng)求不含 TLS 層以明文形式發(fā)給 Gateway 進(jìn)程監(jiān)聽的端口。Gateway 進(jìn)程收到的是干凈的 WebSocket 握手請(qǐng)求它再按標(biāo)準(zhǔn)流程響應(yīng)101并升級(jí)為 WebSocket 連接。提示很多人誤以為 GatewayWorker 也要開 TLS 端口于是去改gateway.php里的ssl true并填證書路徑。這是根本性錯(cuò)誤。GatewayWorker 的 SSL 配置僅在一種場(chǎng)景下有效當(dāng)你跳過(guò) Nginx讓客戶端直連 Gateway 進(jìn)程即wss://your-domain.com:8282。但生產(chǎn)環(huán)境絕不能這么做——沒有反向代理你就失去了證書自動(dòng)續(xù)期、DDoS 緩沖、HTTP/2 支持、日志審計(jì)等關(guān)鍵能力。所以ssl true在標(biāo)準(zhǔn)架構(gòu)中應(yīng)永遠(yuǎn)為false。那么正確的配置責(zé)任劃分就非常清晰了Nginx 全權(quán)負(fù)責(zé) TLS 終止、證書管理、Upgrade 頭透?jìng)鱃atewayWorker 專注 WebSocket 協(xié)議處理只與 Nginx 建立明文連接BusinessWorker 完全無(wú)感照常收發(fā) JSON 消息這種解耦帶來(lái)的最大好處是可維護(hù)性換證書只需改 Nginx 配置調(diào)優(yōu) WebSocket 參數(shù)只需改 Gateway 配置升級(jí)業(yè)務(wù)邏輯只需重啟 BusinessWorker——三者互不影響。而所有“踩坑”幾乎都源于打破了這個(gè)邊界比如在 Nginx 里忘了加Upgrade頭導(dǎo)致 Gateway 收到的是普通 HTTP 請(qǐng)求而非 WebSocket 握手或者在 Gateway 配置里誤啟了 SSL結(jié)果它試圖用明文端口去讀取證書文件啟動(dòng)直接報(bào)錯(cuò)。3. 核心配置項(xiàng)逐項(xiàng)拆解Nginx 與 GatewayWorker 的 7 個(gè)關(guān)鍵開關(guān)WSS 配置的成敗取決于 7 個(gè)具體配置項(xiàng)是否全部正確。少一個(gè)連接就建立不了錯(cuò)一個(gè)日志里就找不到線索。下面我按實(shí)際部署順序把每個(gè)開關(guān)的作用、常見錯(cuò)誤、驗(yàn)證方法、修復(fù)方案說(shuō)透。3.1 Nginx Server 塊SSL 證書與基礎(chǔ) HTTPS 啟用這是整個(gè) WSS 的起點(diǎn)。Nginx 必須能正常響應(yīng)https://your-domain.com的普通 HTTPS 請(qǐng)求否則 WebSocket 根本沒機(jī)會(huì)發(fā)起。server { listen 443 ssl http2; server_name your-domain.com; # 證書路徑必須絕對(duì)準(zhǔn)確且 Nginx 用戶通常是 www-data 或 nginx有讀取權(quán)限 ssl_certificate /etc/nginx/ssl/your-domain.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/your-domain.com/privkey.pem; # 強(qiáng)烈建議啟用 OCSP Stapling提升 TLS 握手速度 ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/ssl/your-domain.com/chain.pem; # TLS 版本與加密套件兼顧安全與兼容性 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # 其他常規(guī)配置... root /var/www/html; index index.php; }常見錯(cuò)誤與排查證書路徑錯(cuò)誤ls -l /etc/nginx/ssl/your-domain.com/看文件是否存在sudo -u www-data cat /etc/nginx/ssl/your-domain.com/fullchain.pem | head -n 1測(cè)試 Nginx 用戶能否讀取。如果報(bào)Permission denied執(zhí)行sudo chmod 644 /etc/nginx/ssl/your-domain.com/*.pem。證書鏈不完整用openssl s_client -connect your-domain.com:443 -servername your-domain.com 2/dev/null | openssl x509 -noout -text | grep CA Issuers檢查是否包含中間證書。若缺失fullchain.pem應(yīng)為cert.pemchain.pem拼接。Nginx 未重載改完配置必須sudo nginx -t sudo systemctl reload nginx只reload不restart避免連接中斷。注意不要在ssl_certificate路徑里用相對(duì)路徑或~符號(hào)Nginx 啟動(dòng)時(shí)工作目錄不固定必須用絕對(duì)路徑。3.2 Nginx Location 塊WebSocket 升級(jí)頭的精準(zhǔn)透?jìng)鬟@是 WSS 失敗率最高的環(huán)節(jié)。Nginx 默認(rèn)不會(huì)透?jìng)鱑pgrade和Connection這兩個(gè)關(guān)鍵頭必須顯式聲明。location /websocket { # 關(guān)鍵必須開啟代理緩沖否則大消息會(huì)截?cái)?proxy_buffering off; # 關(guān)鍵透?jìng)?WebSocket 升級(jí)所需的兩個(gè)頭 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; # 關(guān)鍵告訴后端這是 WebSocket 請(qǐng)求不是普通 HTTP proxy_http_version 1.1; # 后端 Gateway 進(jìn)程地址必須是明文 HTTP非 HTTPS proxy_pass http://127.0.0.1:8282; # 超時(shí)設(shè)置WebSocket 是長(zhǎng)連接不能沿用默認(rèn)的 60s proxy_read_timeout 86400; proxy_send_timeout 86400; # 其他可選優(yōu)化 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; }為什么這三行缺一不可proxy_http_version 1.1WebSocket Upgrade 協(xié)議要求 HTTP/1.1HTTP/1.0 不支持。proxy_set_header Upgrade $http_upgrade$http_upgrade是 Nginx 內(nèi)置變量值為客戶端發(fā)來(lái)的Upgrade頭內(nèi)容通常是websocket。如果寫死成websocket當(dāng)客戶端不帶此頭時(shí)會(huì)出錯(cuò)如果省略后端收不到升級(jí)指令。proxy_set_header Connection upgradeConnection: upgrade是 HTTP/1.1 協(xié)議規(guī)定的升級(jí)觸發(fā)頭必須原樣傳遞。常見錯(cuò)誤與排查忘記proxy_buffering offGatewayWorker 發(fā)送大消息如初始同步數(shù)據(jù)時(shí)Nginx 緩沖區(qū)滿會(huì)導(dǎo)致連接被靜默關(guān)閉?,F(xiàn)象是客戶端能連上但收不到第一條消息。tail -f /var/log/nginx/error.log會(huì)看到upstream sent too big header類似錯(cuò)誤。proxy_pass寫成https://proxy_pass https://127.0.0.1:8282是致命錯(cuò)誤。Gateway 進(jìn)程監(jiān)聽的是明文端口Nginx 會(huì)嘗試用 HTTPS 去連它必然失敗。必須是http://。proxy_read_timeout過(guò)短設(shè)為 60 秒是常見錯(cuò)誤。WebSocket 連接空閑時(shí)Nginx 會(huì)在 60 秒后主動(dòng)斷開導(dǎo)致客戶端頻繁重連。設(shè)為8640024 小時(shí)是穩(wěn)妥選擇實(shí)際超時(shí)由 Gateway 的心跳機(jī)制控制。3.3 GatewayWorker 配置gateway.php中的 4 個(gè)核心參數(shù)GatewayWorker 的配置文件Applications/YourApp/Config/gateway.php是第二道防線。這里不需要開 SSL但必須確保與 Nginx 的通信方式完全匹配。return [ gateway [ class \GatewayWorker\Gateway, transport tcp, // 必須是 tcp不是 ssl ip 127.0.0.1, port 8282, count 4, lan_ip 127.0.0.1, start_port 2900, ping_interval 30, ping_not_response_limit 0, ping_data {type:ping}, // 關(guān)鍵必須為 false表示不啟用內(nèi)置 SSL ssl false, // 關(guān)鍵必須與 Nginx 的 proxy_pass 地址一致 registerAddress 127.0.0.1:1238, ], businessWorker [ class \GatewayWorker\BusinessWorker, count 4, // 關(guān)鍵監(jiān)聽端口必須與 gateway.php 中 registerAddress 的端口一致 registerAddress 127.0.0.1:1238, ], register [ class \GatewayWorker\Register, ip 127.0.0.1, port 1238, ] ];關(guān)鍵參數(shù)詳解transport tcp明確指定傳輸層為 TCP。雖然默認(rèn)就是 TCP但顯式寫出可避免歧義。ssl true時(shí) transport 才是ssl。ssl false再次強(qiáng)調(diào)這是標(biāo)準(zhǔn)架構(gòu)下的鐵律。設(shè)為true會(huì)導(dǎo)致 Gateway 啟動(dòng)時(shí)報(bào)failed to open stream: No such file or directory找不到證書或SSL operation failed with code 1證書格式錯(cuò)誤。registerAddressGateway 和 BusinessWorker 都必須指向同一個(gè) Register 進(jìn)程地址。這是三進(jìn)程通信的“電話總機(jī)”地址不一致會(huì)導(dǎo)致業(yè)務(wù)消息無(wú)法送達(dá)。ping_interval心跳間隔。設(shè)為 30 秒是經(jīng)驗(yàn)值太短增加無(wú)效流量太長(zhǎng)如 120 秒可能導(dǎo)致 Nginxproxy_read_timeout先于心跳觸發(fā)斷連。驗(yàn)證方法啟動(dòng) GatewayWorker 后執(zhí)行netstat -tuln | grep :8282確認(rèn)有tcp6 0 0 *:8282 *:* LISTEN。再執(zhí)行curl -i -N -H Connection: upgrade -H Upgrade: websocket http://127.0.0.1:8282/websocket如果返回HTTP/1.1 101 Switching Protocols說(shuō)明 Gateway 本身 WebSocket 握手正常問(wèn)題一定出在 Nginx 層。3.4 Swoole 版本與 OpenSSL 支持被忽視的底層依賴GatewayWorker 依賴 Swoole 擴(kuò)展而 Swoole 的 WebSocket 服務(wù)器能力與 OpenSSL 版本強(qiáng)相關(guān)。很多“配置全對(duì)卻連不上”的案例根源在此。Swoole 4.5.0開始支持 TLS 1.3推薦使用 4.8.x 或 5.x 系列。OpenSSL 版本必須 ≥ 1.1.1。Ubuntu 18.04 自帶 OpenSSL 1.1.1但 CentOS 7 默認(rèn)是 1.0.2k不支持 TLS 1.3會(huì)導(dǎo)致 Nginx 與 Gateway 通信異常。驗(yàn)證命令# 查看 Swoole 版本與編譯參數(shù) php --ri swoole | grep -E (Version|OpenSSL) # 查看系統(tǒng) OpenSSL 版本 openssl version # 檢查 Swoole 是否鏈接了正確的 OpenSSL ldd $(php-config --extension-dir)/swoole.so | grep ssl輸出示例正確swoole support enabled Version 5.0.3 OpenSSL OpenSSL 1.1.1w 11 Sep 2023 ...錯(cuò)誤場(chǎng)景與修復(fù)如果php --ri swoole顯示OpenSSL Disabled說(shuō)明編譯 Swoole 時(shí)沒找到 OpenSSL 開發(fā)庫(kù)。Ubuntu 上執(zhí)行sudo apt install libssl-devCentOS 上執(zhí)行sudo yum install openssl-devel然后重新編譯安裝 Swoole。如果OpenSSL版本是1.0.2k必須升級(jí)系統(tǒng) OpenSSL 或更換發(fā)行版。強(qiáng)行用舊版 OpenSSL 會(huì)導(dǎo)致 TLS 握手失敗Nginx 錯(cuò)誤日志出現(xiàn)upstream prematurely closed connection while reading response header from upstream。3.5 客戶端連接 URL協(xié)議、域名、端口的三位一體校驗(yàn)客戶端代碼里的一行new WebSocket(wss://...)是整個(gè)鏈條的發(fā)起點(diǎn)也是最容易寫錯(cuò)的地方。// ? 正確協(xié)議 wss域名與 Nginx server_name 一致路徑與 location 匹配 const ws new WebSocket(wss://your-domain.com/websocket); // ? 錯(cuò)誤1協(xié)議寫成 ws本地調(diào)試可用生產(chǎn)必須 wss const ws new WebSocket(ws://your-domain.com/websocket); // ? 錯(cuò)誤2域名不匹配如用了 IP 或子域名但 Nginx 沒配 server_name const ws new WebSocket(wss://192.168.1.100/websocket); // ? 錯(cuò)誤3路徑不匹配Nginx location 是 /ws客戶端寫了 /websocket const ws new WebSocket(wss://your-domain.com/ws);驗(yàn)證方法在瀏覽器開發(fā)者工具 Network 標(biāo)簽頁(yè)過(guò)濾WS點(diǎn)擊連接看 Initiator 列是否顯示wss://your-domain.com/websocket。如果顯示ws://檢查前端構(gòu)建配置如 Vue CLI 的devServer.proxy或 Webpack 的resolve.alias是否在生產(chǎn)環(huán)境注入了錯(cuò)誤的協(xié)議。3.6 防火墻與安全組云服務(wù)器的隱形攔路虎本地curl能通但線上連不上90% 是防火墻擋的。云服務(wù)器阿里云、騰訊云、AWS的安全組默認(rèn)只放行 80/443而 GatewayWorker 的 8282 端口是內(nèi)部通信端口絕對(duì)不能開放給公網(wǎng)。但很多人誤操作把 8282 加到了安全組白名單結(jié)果 Nginx 無(wú)法訪問(wèn)本地 8282因?yàn)榱髁勘话踩M規(guī)則攔截了。正確做法Nginx 與 GatewayWorker 在同一臺(tái)機(jī)器無(wú)需開放 8282 端口127.0.0.1訪問(wèn)走本地回環(huán)不受安全組影響。Nginx 與 GatewayWorker 在不同機(jī)器如 Nginx 在 LBGateway 在應(yīng)用服務(wù)器必須在應(yīng)用服務(wù)器的安全組中僅允許 Nginx 服務(wù)器的內(nèi)網(wǎng) IP 訪問(wèn) 8282 端口禁止0.0.0.0/0。驗(yàn)證命令在 Nginx 服務(wù)器上執(zhí)行# 測(cè)試能否 telnet 通 Gateway 服務(wù)器的 8282 端口 telnet gateway-server-ip 8282 # 如果不通檢查 Gateway 服務(wù)器防火墻 sudo ufw status verbose # Ubuntu sudo firewall-cmd --list-all # CentOS 8 # 確保有類似 allow 8282/tcp from nginx-ip 的規(guī)則3.7 日志分級(jí)與關(guān)聯(lián)快速定位故障環(huán)節(jié)的黃金法則WSS 故障排查本質(zhì)是日志串聯(lián)。必須養(yǎng)成習(xí)慣一次連接失敗同時(shí)查看三處日志。日志位置查看命令關(guān)鍵線索Nginx error.logsudo tail -f /var/log/nginx/error.logupstream timed out超時(shí)、upstream refused端口拒絕、no live upstreams后端宕機(jī)GatewayWorker logstail -f Applications/YourApp/Logs/gateway-worker.logGateway started啟動(dòng)成功、onConnect連接建立、onClose連接關(guān)閉、SSL handshake failed如果誤啟了 SSL瀏覽器 ConsoleF12 → ConsoleWebSocket connection to wss://... failed客戶端層面、Failed to construct WebSocket: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS協(xié)議混用實(shí)戰(zhàn)技巧在 GatewayWorker 的Events.php中加入詳細(xì)日志public static function onConnect($client_id) { \GatewayWorker\Lib\Gateway::log(Client {$client_id} connected from {$_SERVER[REMOTE_ADDR]}); // 記錄 User-Agent判斷是否是爬蟲或異??蛻舳?\GatewayWorker\Lib\Gateway::log(User-Agent: {$_SERVER[HTTP_USER_AGENT]}); }在 Nginx 配置中添加自定義日志格式記錄 WebSocket 升級(jí)狀態(tài)log_format websocket $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_upgrade $http_connection; access_log /var/log/nginx/websocket.log websocket;4. 實(shí)操過(guò)程全記錄從零部署一個(gè)可驗(yàn)證的 WSS 服務(wù)現(xiàn)在我們把前面所有知識(shí)點(diǎn)串起來(lái)走一遍完整的、可立即復(fù)現(xiàn)的部署流程。以下步驟基于 Ubuntu 22.04 PHP 8.1 Swoole 5.0.3 Nginx 1.18 環(huán)境所有命令均可復(fù)制粘貼執(zhí)行。4.1 環(huán)境準(zhǔn)備安裝基礎(chǔ)依賴與 Swoole# 更新系統(tǒng) sudo apt update sudo apt upgrade -y # 安裝 PHP 及常用擴(kuò)展 sudo apt install -y php8.1-cli php8.1-mbstring php8.1-curl php8.1-xml php8.1-zip # 安裝 OpenSSL 開發(fā)庫(kù)編譯 Swoole 必需 sudo apt install -y libssl-dev # 安裝 Composer curl -sS https://getcomposer.org/installer | sudo php -- --install-dir/usr/local/bin --filenamecomposer # 安裝 Swoole推薦 PECL自動(dòng)處理依賴 sudo pecl install swoole # 安裝過(guò)程中如果提示 Enable OpenSSL support? [no] :輸入 yes 并回車 # 啟用 Swoole 擴(kuò)展 echo extensionswoole.so | sudo tee /etc/php/8.1/cli/conf.d/20-swoole.ini echo extensionswoole.so | sudo tee /etc/php/8.1/fpm/conf.d/20-swoole.ini # 重啟 PHP-FPM sudo systemctl restart php8.1-fpm驗(yàn)證 Swoolephp --ri swoole | grep -E (Version|OpenSSL) # 輸出應(yīng)包含 Version 5.0.3 和 OpenSSL OpenSSL 1.1.1w4.2 下載并初始化 GatewayWorker 項(xiàng)目# 創(chuàng)建項(xiàng)目目錄 mkdir -p /var/www/gateway-demo cd /var/www/gateway-demo # 使用 Composer 創(chuàng)建 GatewayWorker 項(xiàng)目官方推薦方式 composer create-project workerman/gatewayworker:4.1.0 . # 初始化應(yīng)用結(jié)構(gòu) php start.php start -d # 此時(shí)應(yīng)看到 Gateway start success但這是臨時(shí)啟動(dòng)我們馬上要配置 # 停止臨時(shí)服務(wù) php start.php stop4.3 配置 Nginx生成可直接使用的 server 塊創(chuàng)建/etc/nginx/sites-available/gateway-demoupstream gateway_backend { server 127.0.0.1:8282; } server { listen 80; server_name gateway-demo.local; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name gateway-demo.local; # 為本地測(cè)試生成自簽名證書生產(chǎn)環(huán)境請(qǐng)用 Lets Encrypt ssl_certificate /etc/nginx/ssl/gateway-demo.local.crt; ssl_certificate_key /etc/nginx/ssl/gateway-demo.local.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers off; # WebSocket 專用 location location /websocket { proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_pass http://gateway_backend; proxy_read_timeout 86400; proxy_send_timeout 86400; 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; } # 其他靜態(tài)資源 root /var/www/gateway-demo/Web; index index.html; }生成自簽名證書僅用于本地測(cè)試sudo mkdir -p /etc/nginx/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/nginx/ssl/gateway-demo.local.key \ -out /etc/nginx/ssl/gateway-demo.local.crt \ -subj /CCN/STBeijing/LBeijing/ODemo/CNgateway-demo.local啟用站點(diǎn)sudo ln -sf /etc/nginx/sites-available/gateway-demo /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx4.4 配置 GatewayWorker修改gateway.php與start.php編輯/var/www/gateway-demo/Applications/GatewayDemo/Config/gateway.phpreturn [ gateway [ class \GatewayWorker\Gateway, transport tcp, ip 127.0.0.1, port 8282, count 2, lan_ip 127.0.0.1, start_port 2900, ping_interval 30, ping_not_response_limit 0, ping_data {type:ping}, // 關(guān)鍵必須為 false ssl false, registerAddress 127.0.0.1:1238, ], businessWorker [ class \GatewayWorker\BusinessWorker, count 2, registerAddress 127.0.0.1:1238, ], register [ class \GatewayWorker\Register, ip 127.0.0.1, port 1238, ] ];編輯/var/www/gateway-demo/start.php確保use GatewayWorker\Autoloader;在頂部并在start()函數(shù)前添加// 設(shè)置時(shí)區(qū)避免日志時(shí)間錯(cuò)亂 date_default_timezone_set(Asia/Shanghai);4.5 啟動(dòng)服務(wù)并驗(yàn)證連接# 啟動(dòng) GatewayWorker守護(hù)進(jìn)程模式 cd /var/www/gateway-demo php start.php start -d # 查看進(jìn)程是否運(yùn)行 ps aux | grep GatewayWorker # 查看 Gateway 日志 tail -f /var/www/gateway-demo/Applications/GatewayDemo/Logs/gateway-worker.log # 應(yīng)看到 Gateway started 和 Register started # 測(cè)試 Nginx 到 Gateway 的連通性在服務(wù)器本地執(zhí)行 curl -i -N -H Connection: upgrade -H Upgrade: websocket http://127.0.0.1:8282/websocket # 應(yīng)返回 HTTP/1.1 101 Switching Protocols # 測(cè)試 WSS 連接在另一臺(tái)機(jī)器或?yàn)g覽器中 # 訪問(wèn) https://gateway-demo.local打開開發(fā)者工具 Console執(zhí)行 # const ws new WebSocket(wss://gateway-demo.local/websocket); # ws.onopen () console.log(Connected!); # ws.onerror (e) console.error(Error:, e);如果瀏覽器報(bào)錯(cuò)ERR_CONNECTION_REFUSED檢查sudo netstat -tuln | grep :8282確認(rèn) Gateway 進(jìn)程在監(jiān)聽。檢查sudo nginx -t確認(rèn) Nginx 配置語(yǔ)法正確。檢查/var/log/nginx/error.log看是否有connect() failed (111: Connection refused)說(shuō)明 Nginx 連不上 8282。如果瀏覽器報(bào)錯(cuò)ERR_SSL_PROTOCOL_ERROR檢查curl -I https://gateway-demo.local確認(rèn) HTTPS 基礎(chǔ)服務(wù)正常。檢查證書路徑是否正確ls -l /etc/nginx/ssl/看文件是否存在。4.6 前端驗(yàn)證頁(yè)面一個(gè)最小可運(yùn)行的 HTML在/var/www/gateway-demo/Web/index.html中寫入!DOCTYPE html html head titleGatewayWorker WSS Test/title /head body h1GatewayWorker WSS 連接測(cè)試/h1 div idstatus等待連接.../div button onclickconnect()連接/button button onclicksend() disabled idsendBtn發(fā)送消息/button divtextarea idmsg rows2 cols50Hello from browser!/textarea/div script let ws; function connect() { const url wss://gateway-demo.local/websocket; ws new WebSocket(url); ws.onopen function() { document.getElementById(status).innerText ? 已連接; document.getElementById(sendBtn).disabled false; }; ws.onmessage function(event) { console.log(收到:, event.data); document.getElementById(status).innerText 收到: event.data; }; ws.onclose function() { document.getElementById(status).innerText ? 連接已關(guān)閉; document.getElementById(sendBtn).disabled true; }; ws.onerror function(error) { console.error(WebSocket 錯(cuò)誤:, error); document.getElementById(status).innerText ? 連接錯(cuò)誤: error; }; } function send() { const msg document.getElementById(msg).value; if (ws ws.readyState WebSocket.OPEN) { ws.send(msg); document.getElementById(status).innerText 已發(fā)送: msg; } } /script /body /html訪問(wèn)https://gateway-demo.local點(diǎn)擊“連接”即可看到實(shí)時(shí)連接狀態(tài)和消息收發(fā)。5. 常見問(wèn)題與排查技巧實(shí)錄那些讓你抓狂的“幽靈錯(cuò)誤”在多個(gè)項(xiàng)目的 WSS 部署中我整理出一份高頻問(wèn)題速查表。這些問(wèn)題往往沒有明確報(bào)錯(cuò)或者報(bào)錯(cuò)信息極具誤導(dǎo)性必須結(jié)合上下文才能定位。5.1 問(wèn)題速查表癥狀、原因、驗(yàn)證命令、修復(fù)方案癥狀可能原因驗(yàn)證命令修復(fù)方案瀏覽器控制臺(tái)報(bào)net::ERR_CONNECTION_CLOSEDNginx error.log 為空Nginx 的proxy_pass指向了錯(cuò)誤的端口如 2121 而非 8282或 Gateway 進(jìn)程未啟動(dòng)sudo netstat -tuln | grep :8282curl -i http://127.0.0.1:8282/websocket確認(rèn)gateway.php中port與 Nginxproxy_pass端口一致執(zhí)行php start.php start -d啟動(dòng) Gateway連接能建立但 30 秒后自動(dòng)斷開onClose日志頻繁出現(xiàn)Nginxproxy_read_timeout過(guò)短或 Gatewayping_interval與 Nginx timeout 不匹配grep proxy_read_timeout /etc/nginx/sites-available/*grep ping_interval /var/www/gateway-demo/Applications/*/Config/gateway.php將 Nginxproxy_read_timeout設(shè)為86400Gatewayping_interval設(shè)為30確保 Nginx timeout 3 × ping_intervalNginx error.log 報(bào)upstream prematurely closed connectionGatewayWorker 進(jìn)程崩潰退出或 Swoole 版本與 OpenSSL 不兼容sudo systemctl status php8.1-fpmphp --ri swoole | grep OpenSSL升級(jí) Swoole 至 5.x確保 OpenSSL ≥ 1.1.1檢查 Gateway 日志是否有 Segmentation fault
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧综合网| 激情亚洲天堂| 人人干人人操人人爱| 久久超碰亚洲人| 亚乱色| 操一对老熟妇爽上天视频| yiren97| 亚洲天堂99| 日韩综合无码色欲vv| 亚洲综合色在线| 性感女人网页在线观看视频| 六月天婷婷| 黄在线| a级免费在线观看| 亚洲AV不卡在线观看| 麻豆精品久久久久久久| 婬女免费一二三区A片| 91成人18| 婷婷久草一区二区三区| 99综合网| 91天美传媒在线| 黄色网址久久精品欧美喷水| 久久99人妖视频国产| 欧美日韩午夜精品一区二区三区| 亚洲AV无码乱码| 亚洲资源吧| 亚洲图片欧美色图| 清纯唯美综合亚洲| 欧美综合狠| 色九九九综合| 久久久免费懂色| 亚洲色丰满少妇高潮| 黑丝日韩av丝袜av| 一区二区三区蜜桃成人撸久久东京热| 久久大线蕉一区| 亚洲AV小说| 五月婷婷影院| 中文高清一区二区的| 五月色网| 国产自产91区13区| 粉嫩AV一区夜夜嗨| 日韩欧美麻豆 | 亚洲97网站| 97超碰免费生活| 人妻熟女一区二区| 国产精品一区在线播放| 国产精品 视频| 欧美中文综合| 网站A V在线| 日本熟妇浓毛hdsex| 91亚洲欧洲| 中文字幕97| 中日韓欧美高清| 欧美天天综合| 亚洲欧美色图小说| yellow网站免费观看日韩高清无码| 伊人网综合在线视频| 欧美日韩国产中文精品字幕自在自线| 9l视频自拍9l九色成人| 香蕉在线一区二区三区| 日韩资源网| 少妇熟女视频一二三区| 亚洲综合伊人无码久久| 婷婷影院入口| 爽爽淫人网| 淫色网综合| 国产精品视频| 91N综合网| 国产日韩精品suv| 一区二区三区黄色片a| 亚卅熟女乱色| 男人下部插入女人下部 | 超碰在线人妻中文字幕| 九九热在线精品视频| 97欧美资源| 日本一区二区亚洲综合| 国产午夜激片Av毛片不卡| 婷婷久月| 亚洲视频一二区| 国产AB视频| 17c嫩草51久久91嫩草| 十八禁的黄污污免费网站| 婷婷啪啪| 9997se| 最新国产精品| AV中文在线可看| 亚洲AV在线资源| 91啦人妻| 亚洲一二三精品久久网| 少妇色| 久久久国产成人一区二区三区在线 | 丝袜美腿诱惑亚洲欧美视频在线观看| 亚洲色香| 欧美精品久久96人妻无码| 欧美精品成人在线播放| 91蜜臀熟女| 蜜桃臀AV在线| 久久精品国产99精品亚洲蜜...| 色播综合| 91美女国产在线| 蜜乳AV免费观看| 看日韩美女二区三区免费操逼视频| 青青草五月天| 日本成人A片网站| 亚洲中文字幕网| 99爱爱| 国产亚洲深夜激情| 福利五区| 在线可观看的黄色网址| 亚洲图片偷拍欧美| 人妻中文在线| 亚州性9| 岛国黄色大片网站| 97精品97久久| 九九干| 久久久久久久国产| 人人贴人人摸| 亚洲综合色图欧美| 亚洲中文字幕av| 欧美洲精品一级| 亚洲黄色a级片| 伊人一区二区三区| 黄片国产精品一区二区| 久久久91福利姬| 美國A片| 色综合20p| 激情无码日韩| 欧美综合色| 国产精品久久久久av| 青草影院内射高潮| 日韩不卡毛片Av免费高清| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 男人天堂站| 91在线精品一区二区三区| 99国内精品| 日本成a人v网站在线观看| 夂久色| 一区二区乱码福利| 久久噜噜噜精品国产亚洲综合| 国产精品自拍欧美在线| 人妻少妇精品久久久久久| 欧美99热| 日本人妻最新在线中| 免费看美国人人爽,人人操| 国产又黄又粗的视频| 人妻 欧美 中文| 无码精品蜜桃一区二区三区ww| 欧美色图自拍| 极品五月天噜噜| 都市久久精品激情亚洲| 91热色| 色蜜AV| 1000部熟女视频在线观看| 亚洲情色在线| 91久久国产综合久久| 亚洲 欧美 日韩 国产一区二区| 亚洲色91C| 亚洲操操操| 婷婷av在线中文字幕| 98超碰日本| 超碰97精品在线| 大香网站| 亚洲最新av无码成人精品区 | 狠狠干综合| 1769国内精品视频| 国产视频第二页| 欧美日韩理论一区| 任我爽视频在线观看| 亚洲精品国产熟女久久久久久| 噜噜瑟| 亚洲美欧999| 秋霞影音一区二区三区| 成人免费性爱视视| 亚洲女优有码无码高清| 亚州综合AⅤ| 久草成人福利导航| 亚洲欧美精品一区天堂久久 | 久久精品视频28| 亚洲情色中文字幕一区| 欧美激情另类一区二区| 久久日本熟妇熟色一区| 欧美色蜜桃97| 美女网站黄页| 伊人在线大香蕉视频久久| 久久色激情一区二区三区| 婷婷AV一区二区三区| 日韩黄色片子| 欧美中文字幕精品人妻| 黄色成年| 中出20p| 91丝袜在线视频| 人妻天天爽夜夜爽精品2| 性色av婷婷久久一区二区点复制| 大香蕉免费乱伦视频| 最新日日夜夜天天干干| 精品一啪| 欧美专区日本专区| 熟女色综合久久| 曰韩操B| 精品国产一区二区三区香蕉欧美| WWW.操逼.COM| 日韩福利电影网| 综合五月天| 78m成人视线| 久久久久国产精品人妻aⅴ天堂| 91 丝袜在线观看| 亚洲图片 激情小说| 久久国产对白激情浪潮 | 国产一区二区二区按摩精品啪视频| 伊人在线大香蕉视频久久| 国产情色第一第二页在线观看| 嗯嗯啊啊用力视频免费| 欧美伦乱爱| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 免費人妻夜夜爽天天爽爽一区| 丁香五月综合| 97国产亚洲中文在线| 一本正道久久熟女| 中国小夫妻勾搭露脸淫荡对白| 成人综合视频久久| 九九九九九九视频| 欧美一区二区| 天天综合亚洲综合| 再深点灬舒服灬太大了添视频| 99久久精品无码一区二区毛片免费| 26uuu最新| 成人a级高清视频在线观看| 日韩熟女无码| 夜间福利片1000无码| 日韩丰满熟妇| 在线黄页看毛片| 99热亚洲天堂| 天欧美在线| 加勒比色99999| 一区二区视频在看| 日本性感人妻91| 尤物黄色在线观看网站| 开心激情站| 九九九久千久久激情蜜桃在线看 | 黄色大片一区二区密桃丝袜| 欧美久久久15P| 久久一区二区加油站| 桑老女人九区| 精品无码久久久久久久杏吧| 一线黄色免费性爱片| 欧美性生活综合| 欧美亚洲国内自拍| 青操影院| 亚洲性爱成人| 亚洲综合在线视频| 美女AV一区二区| 安微少妇操BBB| 亚洲天堂五月天国产| 亚洲 欧美 手机在线观看| 超碰人人乐97| 欧美色图小说综合| 91性高朝久久久久久久久| 日韩欧美经典在线观看| 午夜啊啊啊| 青青草一本道福利视频| 欧美区亚洲区偷拍区| 国产伦乱91| 久久国产精品,久久国产| 久久久亚洲熟妇资源| 午夜操逼不卡| 精品十三区| 99re这里只有| 国产农村一一级特黄毛片| 日本A级视频| 日韩一级二级三级| 大香蕉啪啪网| 变态另类专区| 中文字幕 国产 精品| 国产成自自拍在线观看| 亚洲麻豆av一区二区| 91九色精品熟女内射| 嗯,啊。舔我逼| 亚洲高清无毛一区二区| 久久欧美按摩999| 青青久草| 日韩一级片| 亚洲 欧美 综合 91| 妇女性内射冈站HDWWWCOM| 日韩一级二级| 天天影视亚洲| 欧美日韩丝袜 | 嗯嗯啊啊视频在线看| 欧美日日人人天天| 欧美性巨大╳╳╳╳╳高跟鞋| 国产肏屁眼视频| 久久精品国产精品一区| 国产精品久久久久久久久久久久久久久久久久 | 久久精品一区二区三区四区五区| 欧美亚洲综合色| 性感美女91影视| 香蕉久久国产AV一区二区| 日韩毛片9| 18禁超污无遮挡无码免费网| 91 综合 色| 色伊人91| 天天日天天看| 色一射色一射| 尤物视频一区| 色噜噜人妻av中文字幕| 91 刺激在线| 国产后入| 欧美日韩国产人人| 91精品黄在线观看| 91色图| 久久久久久性爱视频| 内射夫妻三片| 亚欧美综合网。| 色欲天天综合网| 最新AV在线| 宅男91视频在线播放| 黄色免费网| 久久国模av| 亚欧性爱ab| 97操碰| 婷婷五月天补不补| 午夜操逼不卡| 国产精品伦理| 中文字幕乱碼在线| 日本三级日本三级99| 亚洲色图亚洲| 久久久久元码视频| 色玖玖| 秋霞色色影院| 久久九九热| 嗯嗯嗯啊啊啊操的我好爽| 欧美一区二区福利在线| 四季av一区二区凹凸精品小说| 爽爽淫人网| 99热这里| 久热在线精品免费观看| 日韩91网| 曰本91情色| 97婷婷色| 99国产精品视频尤物| 亚洲中文sv| 日产中文字幕2020| 91美女中出| 天天操夜夜操狠很操| 久久东京热久久| 九一综合网| 懂色综合久久久| 日va操| 黄片www视频免费| 亚洲涩图欧美| 天美传媒AV国产在线| 色色婷| 成年人黄色小视频网站| 亚洲无码电影久久久| 快播久久人人aV| 少妇三P| 亚洲伊人久久精品狠狠在线| 丁香六月激情综合| 午夜黄色免费在线观看| 日韩精品一区二区日韩| 欧美激情性久久久久久| 欧美激情综合网| 97精品视频在线| 自拍视频大全亚洲专媒视频/一区二区三区 | 萌白酱自拍视频| 韩国三级一线观看久| 全国男人天堂网| 风骚少妇视频中文字幕| 男人网站婷婷| 日韩操呦呦影院在线观看| 精品99999久久久久久| 热久久这里只有精品| 免费中文在线| 97人妻免费中文字幕| 情趣丝袜无码操逼视频| 成人无码在线超碰网| 激情小说在线视频| 综合欧美日本三级| 人妻少妇精品久久久| 国内精品不卡无毒99999| 97色婷| 激情久久久| 久久一级无码精品毛片6| 亚洲国产奇米影视久久| 国产欧美日韩一区二区三区| 多毛小伙内射老太婆| AV和黑人在线播放| 日韩国产欧美伦理在线| 亚洲一级特黄大片在线播放91| 秋霞成人一级在线观看| 亚洲 一区二区 自拍| 亚洲精品天堂久久A∨51成人漫| 国产91av在线播放| 男人高清无码一区二区| 亚洲欧美国产日本一区二区三区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 啪啪综合网| 午夜精品久久久| J?P?NESEHD熟女熟妇伦| 欧美精品99久久久| juliaann精品熟女一区| 99蜜桃臀久久久欧美精品网站| 久日91在线| 污电影在线观看| 黄站在线免费观看| 综合97| 人人操我人人干| 国产操偷| 厕所偷拍在线| 经典丝袜一区| 97碰碰色| 啪一啪免费视频| 五月丁香网站| 亚洲色性情三级| 久久久一区二区| 色五月av| 密乳AV免费观看| 亚洲无码99| 青青草视频爽一爽| 欧美在线干| 亚洲综合20p| 精品人妻1区| 久久亚洲婷婷| 亚洲男人天堂2016| 神马久久午夜| 蜜乳AV一区二区三区四| 热久久精品| 蜜臀久久精品久久久久视频| 青草精品视频-日本久久久久网站| 日韩欧美午夜一区二区| 91操碰| 亚洲污污网站| 欧洲性爱无码区| 国内精品久久久久影院亚洲| 欧美情色男人的天堂| 老熟女综合网| 久久国内| 狠狠做深爱婷婷久久二区| 亚洲自拍97| 国产麻豆福利av在线播放| 欧美精品成人亚洲| 这里都是精品| 成人八戒网站| 久久久专区| 国产精品福利资源在线尤物| 狠狠色丁香| 国产精品久久久久久久免牛肉蒲团| 97久久国产精品女不卡| 殴美在线AⅤ| 国产传媒一区日韩| 日韩精品中文字幕人妻| 久久亚洲不卡| www.91视频网| 免费一级视频特黄色大片| 亚洲污污网站| 新久久AV| 国产精品3| 国内亚洲精彩视频在线| 十八禁黄色成人网站观看| 97欧美精品| 长长久久88视频| 易易A毛视频| 国产 三级自拍| 国产和美国毛片| 久久直播国产| 久久人妻一区二区三区高清| 久操网线| 欧美人妻一区二区| 99色在线视频| 亚洲爽图| 蜜桃不卡一区二区| 久久国产免费激情视频| 精品九九九九九九九九九| 欧美日韩黄片精品在线| 99久久精品无码一区二区| 97碰碰日本乱偷人妻中文的| 丝袜剧情| 一区二区播放| 色蜜AV| 欧美夜夜草视频| 欧美天天谢综合网| 亚洲蜜乳av| 亚洲图片在线| 高潮精品| 午夜毛片高清免费不卡| 亚洲一区日韩| 超碰九7| 中文字幕一区二区免费在线| 偷拍五区| 激情五月天色播| 一区二区乱码福利| 91麻豆一二三区| 国产在线精品偷| 伊人91| 人人澡人人爽人人精品| 91n处女在线观看| 日本熟妇一区二区三区| 热久久国产| 色香91| 人妻久久久| 亚洲av性爱电影| 欧美日韩亚洲电影| 日日狠狠久久偷偷色综合免费| 色综合一区二区三区| 久久夜夜夜夜| 色婷婷久久| 永久免费av无码网站国产app| 1024午夜激情男人的天堂| 丁香五月成人| 亚洲成人性| 97免费视频在线| 欧美日动态视频| 久久性爱视频| 亚州AV无码国产精品| 亚洲丝袜诱惑| 黑人精品欧美一区二区蜜桃| 日本不卡三级网在线播放| 顶级丝袜熟女一区二区三区| 日本一级特级毛片视频| 69久久| 嗯嗯啊好大| 亚洲91少妇| 手机看片1024你懂的国产| 乱伦熟女论坛| 亚洲乱妇p22| 日本三级韩国三级美三级91| 嗯嗯嗯啊啊啊操的我好爽 | 人人摸人人舔一区二区| 欧美一二三区四五区| 美日韩成人| 高跟丝袜AV专区国产| 无遮挡又黄又刺激的视频| 日本幼女18+| 日韩中文字幕宗合在线| 美女的肌被草喷水视频| 欧美性天天影视| 亚洲成av人片色午夜乱码| 黄色片,com| 欧美黄色手机在线观看| 国产精品视屏| 伊人网高清| 久伊人网78| 日韩欧美蜜桃精品久久中文字幕久久| 中文字幕97色| 一区二区国产视频在线观看| 激情亚洲天堂| 男人的天堂色偷偷青青草视频婷婷网| 91人人看| 99爱久久视频频| 亚洲色图激情小说| 欧美熟女少妇| 91久久久久久久久久久| 又大又黄国产| 99热色这里只有精品| 91无码中出人妻视频| 天天肏夜夜肏| 嗯啊不要啊在线| 五月综合色| 欧美午夜精品久久久久久超碰| 天天摸,夜夜摸| 丁香五月天视频| 校园春色 男人天堂| 素人播放一区| 亚洲男人的天堂一区二区| 少妇免费视频| 久久av色| 99国内熟女露脸视频| 五月天加勒比啪| 91网站18+| 一卡二卡三卡| 99人妻| 色欲Av人妻精品一区二| 精品高清一区二区三区三州| 午夜福利精品| 99在线精品视频| 天天干天天日天天射黄色大片| 欧美性区| 夜夜嗨免费视频| 欧美碰碰综合色| 中国AAAAAA黄色片| 久草免费福利在线播放| 综合网色| 精品久久在线区一区| 操一区| 日日爽熟女| 欧美97| 人人看欧美性爱| 久久婷婷五月综合| 精彩国产视频播放1区2区| 久热久操| 97超碰中文在线| 高清国产性猛交xxxx乱大交| www.色操逼| 玖玖综合色| 视频在线97| 成年人黄色视频免费| 日韩av在线免费网站| 国产玖玖| 欧美日韩美女精品久草一区二区三区 | 东京男人天堂| 黄色操人| 99婷婷| 日本中文字幕一区| 欧美超碰97| 国产精品一二三在线看| 亚洲熟妇丝袜在线观看| 久久超碰天天| 美国一区二区三区视频| 久久久久久久久久久久久久久性生活视频 | 乱欲性色| 日韩肏逼视频| 色色五月天激情| 欧美国产成人在线| 久久精品一区二区一8| 插欧洲美女欧美精品| 第45页一区二区| 91美| 一区二区三区欧美激情| 色男人色天堂东京热| 很很操在线| 色色色热| 床戏久久久av一区二区麻豆| 欧美性爱中文字幕无线码| 黄色网址久久精品欧美喷水| 日本久久久久久久久久| 一区二区三区探花在线观看| 日逼五月天| 日韩97P| 丁香五月色| 男人天堂最新手机版在线青青草| 亚洲色系另类精品国产| 天堂日本亚洲欧美| 男人在线天堂| 日韩三级久久久| 色欲久久99国产精品久久久久久| 日韩在线观看中文字幕视频| 无码人妻丰满熟妇区毛片| 综合久久久久久久综合网| 97超碰色屌| 国产成人超碰在线| 第四色色综合91| 欧美一级黄色免费专区| 久久亚洲骚逼综合| 日韩激情电影中文字幕| 在线天堂999| 超碰精品国产无码| 夜夜騷av、一區二區| 久久透逼视频| 亚洲黄a三级三级三级看三级| 搞中出久久| 亚av顶级裸体一区二区三区四区五区 | 无码人妻丰满热妇又大又粗| 欧洲精品区| 偷看洗澡一二三区美女| 999久久久久久久久| 午夜一区| 亚洲欧美不卡线| 久久久久久久久久久久久久9999| 东北少妇高潮zzzz| 婷婷丁香一区二区三区| 天天综合网日韩7799| 亚洲区限制级 99| 中文激情网| 伊人操| 一个人在线看的黄色电影网站| 亚洲 中文字幕 精品| 99热免费精品| 国产精选三级在线观看| 天天久久| 操人妻逼91| 伊人女女资源在线观看| 亚洲高清综合网| 国产人伦精品一区二区三区| 国产精品嫩草影院免费| 亚洲欧美91| 人妻在线中出视频| 色成人Www精品永久观看| 亚洲综合色图欧美| 熟妇女人妻呻吟久久AV| 国产第25页在线观看| 超碰吊日色| 中文字幕亚洲欧美在线不卡| 亚洲一卡2卡3卡4卡乱码网站 | 亚洲伊人a线观看视频| 91老妇女| 日本 免费 一区二区三区 久久香蕉 | 日本天天人人狠狠在线日美女| 啪啪视频亚洲第一| 高清视频一区| 91精品国久久久久久无码| 亚洲黄色影视| 国产精品亚洲无码| 久久啊啊| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 色九九九综合| 国产一区96在线| 日韩人成网站在线播放| 中文乱码字字幕在线第5页| 91劲爆| 亚洲国产剧情少妇激情| 精品区国产区一区二区三区| 亚洲一区二区三区在线激情| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 伊人色综合网电影| 日本色色视频网站| 久久久久久久97| com 首页 18岁 禁区 女优 免费 精选 同城| 91在线美女| 九九久久综合| 殴美在线AⅤ| 久久久久久久九九九九九九| 免费国产视频| 深爱伊人影院| 视频在线中文字幕| 欧美色图成人网一区二区 | 久久亚洲中文字幕视频| 精品一级| 欧美久久人体| 精品中文一区二区| 嫩草影院永久在线制服丝袜| 日本一区二区三区精品| 69人妻精品一区二区绯色| 久草免费在线一区二区| jizzjizz欧美| av网站在线观看了| 色就色综合| 日本成人免费一区二区三区| 婷婷丁香激情| 91久久久久久久久18| 91狠狠综合久久| 东京热毛片调教| 九九九只有精品| 大香蕉92| 精品少妇人妻一区二区三区| 99re在线视频国产| 久久久久久少妇| 久久精品国产久精国产| 欧美伦乱爱| 96国产污污污丝袜| 人妻人妻天天碰| 久久久成人精品| 97欧美色综合| 97欧美色| 精品人妻久久久| 日韩97在线| 午夜操一操| 欧美日韩在线视频网站| 欧美日韩国产一区二区小黄片大全| 亚洲无线观看久久| 亚洲 欧美 日韩 国产一区二区 | 精品久久大胆人体| 欧美与日韩97| 夜夜骑日日| 熟妇女伦乱视频| 久操电影| 日韩人妻有码免费视频| 国产精品干干干| 国产亚洲精品第一最新| 91日韩在线| 亚洲有薄码区日本系列中文字幕| 日韩紧密久久| 成人在线午夜视频一区| 97 国产精品| 97超碰人妻| 最新日日夜夜天天干干| 亚洲成人美女无吗| 激情五月综合网| 亚洲少妇诱惑| 久草老司机| 97久久网| 青青伊人这里只有精品| 天天爽天天操| 激情欧美日韩女同久久| 在线 欧美 亚洲| 91天天| 人人摸人人干人人拍97| 五月综合激情| 欧美亚洲美少妇一区二区| 青青青草原| 丰满人妻被猛烈进入中| 国产区性爱在线视频秋霞豆| 志村玲子视频一区二区| 99亚洲人人| 欧美色网络| 综合 欧美 亚洲 日本| 美日韩成人| 亚洲欧美国产中文字幕| 啊啊啊啊好疼| 国产女人和拘做爰视频 | 激情欧美日韩女同久久| 鸥美中出| 亚洲成人久久一区二区| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 亚洲色图伊人网| 国产精品播放| 免费在线观看国内色片网站网址| 91爱综合| 欧美性高潮在线| 十八岁啪啪视频免费看| 亚洲精品一区二区三区新线路| 欧洲性人爱视频| 国产美女口爆吞精视频| 日日夜夜天天| 精品人妻一区二区三区蜜桃视频| 国产丝袜欧美在线视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 91精品在线播放| www.99中文字幕| 欧美色九九九| 97日韩| 狠狠综合网| 91痴汉| 精品一区二区人妖| 亚洲资源网| 亚洲?V无码专区在线电影| 人人喜人人妻| 九九九九久久久久| 婷婷中文字幕| 99re99在线视频| 色爱三区| 性九九九九九九| 色呦呦呦在线观看视频| 亚州春色| 日韩精品国产一区二区| 天天日日日射| 黄片视频观看| 观看视频图片一区二区三区| 亚洲天堂精品日韩电影| 红杏大香蕉| 精品999一区二区| 日韩三级一区| 爱逼综合| 岛国小电影| 91AV入口| 秋霞一区二区三区四区五区六区七区| 欧美一级黄色免费专区| 快点操死我| 久操操AV电影| 日本999精品| 色哟哟511老熟女| 亚洲少妇免费视频\| 久精品无码av一区二免费国产在线观看| h色99999| 久久久久久AV无码免费网站| 亚洲日韩97| 丁香五月成人| 张柏芝国产一区在线观看| 日韩欧亚太美不卡| 亚洲密乳AV| 青久久| 婷婷五月天av| 亚洲无码视频免费在线观看网址!| 九一综合精品视品av| 一本色道综合久久欧美| 日日骚精品视频| 日本在线视频导航| 男人综合网| 亚洲限制级在线| 亚洲小电影免费涩涩成人在线高清| 999 久久久| 四色永久成人网站| 起碰97| 中文字幕精品久久久久人妻红杏ⅰ | 国产九九久久久精品| 俄罗斯一区二区视频在线观看| 免费超碰97久久| 九九这里只有精品| 天天射天天| 亚洲蜜臀精品视频久久| 91在线页| 操高情无码| 久久东京热久久| 欧美中文狠| 九九热精品视频在线观看| 午夜男女爽爽大片免费观看| 超碰在线1234区| 天美麻豆精品视频99| 久久无码成人| 性91| 久久久久久少妇| 97蜜桃综合| 熟女六十路| 日韩av性爱在线播放| 欧美一品道| 欧美日韩理论一区| av资源在线播放天堂| 人人操人人爽人人操人人| 日韩欧美中文字亚洲慕| 三级片大波波| 91精品久久久久久77777| 91AV入口| 天天亚洲| 久久精品综合| 久久久久ab| 97色冈| 久草视频分类在线| 九九综合久久中文字幕| 99中文字幕| 四季av一区二区凹凸精品小说| 欧美少妇第一页| 五月天激情小说| 久久肏大逼| 日韩乱伦AⅤ| 亚洲网站一区二区在线| 99超碰碰| 欧美手机在线综合| 天天操人人操骚逼网站| 欧美三级免费伊人| 麻豆久久久一区二区| 高清无码国产亚洲| 欧美东京热精品A∨| 麻豆国产视频精品观看| 亚洲国产精品无码AV久久| 亚洲欧洲日韩中文字幕一区| 很狠操| 9精品久久| 日本啊啊啊啊啊视频| www四虎| 亚洲日韩AV视色| 99热亚洲| 丁香激情网| 五月天激情小说| 91丨九色丨国产打屁股| 亚洲中文字幕三级在线| 操B在线观看| 极品尤物自安慰| 色狠狠 - 百度| 伦伦成年午夜免费视频| 色婷婷激情| 激情啪啪拍91| 探花一区在线| 国产原创精品| 日韩精品操少妇| 超碰97日韩| 亚洲综合色婷婷| 黄站在线免费观看| 国产亲戚伦亲在线| 欧美成不卡网| 国产AV线| 欧美精品一区二区少妇免费A片| 激情色播| 91老司机视频| 美女黄频a美女大全免费皮| 亚洲天堂性爱| 久久69| 97亚洲欧美| 欧美成熟性爱精品| 日本精品五区| 国产精品一区二区a| 18啪啪手机免费性爱| 中英熟女操女| 韩国一级做a久久久久| 69精品| 九九热re99re6在线精品| 69久久| 啊啊啊啊好疼| 夜草网站| 国产女人和拘做爰视频 | 啊灬啊灬啊灬啊灬高潮奶出了免费视| 欧美碰碰综合色| 91av天美性媒精品视频| 女性喷水高潮在线观看| 国产黄色小视频网站| 97在线观看免费视频| 欧美性爱精品七区| 成人性爱免费播放| 精品999一区二区| 天天干18禁| www.男人的天堂| 呦呦影院| 精品性爱一区二区| 蜜臀精品1区2区| 九久久精品| AV乱伦国产| 极品白嫩美女白浆成人福利在线看| 六月丁香啪啪啪| 色偷偷色偷偷欧美日韩| 欧美亚洲首页| 精品国产一区二区三区香蕉欧美| 99人人干| 狠狠做深爱婷婷久久二区| 日韩超碰97| 美女被艹尤物视频| 欧美天堂第二区| 国产午夜精品在线观看| 五月婷婷基地| 日本好吊色视频| 伊人专区一区二区三区| 久草综合京东| 加勒比综合88| 狠狠色综合网| 久久久久幕乱码| 黄色网址在线免费观看| 干b在线性社区| 国产h小视频在线观看免费| 色婷婷久久| 2019男人的天堂| 国产美女高潮叫床视频| 午夜福利在线合集| 免费无码国产精品v片在线观看| 熟妇高潮二区三区| 国产18精品亚洲精品| 国产AB视频| 日本精品一区二区中文字幕| 中文字幕诱惑制服人妻丝袜美丝袜美 | 久久性爱城| 中文字幕国产| 久久久网站| 久久色网| 蜜臀亚洲综合一二三四区| 国产精品嫩草久久久久| 久草精品一区| 国产精品亚洲免费| 日本大香蕉综合网| 国产农村妇女精品一| av天堂精品久久| 欧美人妻熟女在线| 丰满人妻-区二区三区免费| 日韩精品字幕| 亚洲精品不卡一二三区| 丁香九月激情啪| 乱伦强奸区日韩| 色臀aV| 99这里有精品| 欧日a| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | a级成人毛片免费视频高清| 乱人乱色一区二区三区免费| 啪啪91| 久久99综合| 国产精品婬乱一级毛片彝族| 91天堂| 国产超碰97| 屌妞视频久久久久久久久久久久| 久久婷婷综合国际产色怕| 亚洲精品97| 精品人妻丰满熟妇一区二区三| 超碰99热中文字幕| 欧美黑人猛交春色影视大全| Blackedraw视频一区二区| 91P0RNY大屁股人妻| 亚洲资源一区| 国产精品久久久久9999小说| 亚洲欧美日韩电影网站一区| 五月天伊人| 欧美色三级片91| 色蜜AV| 欧美亚洲丝袜人妻制服99| 国产精品国产拍高清AV| 中文字幕奈奈美被公侵犯| 澳门黄片一香蕉视频| 欧美性第一页| 立川理惠被中出无码| 91挑色欧美| 免费视频97| 激情视屏国产乱伦强奸| 五月婷婷性爱| 一区二区三区成人| 激情小说图片亚洲首页| 爽 好舒服 无码刺激久久| 久操 高清| 亚洲学生妹高清av| 国产成人在线观看综合| 97超视频在线观看| 99视频这有这里有精品| 五月天激情小说网| 欧美亚洲手机在线| 久草网站免费在线观看| 少妇xx精品| 九九99精品视频在线观看| 亚洲91av| 天综合网欧美| 免费视频一二三区| 中文?日韩?免费?精品| 亚洲国产精品9999在线观看| 人人摸人人干人人拍97| 久久99操天天日| 91青青在线视频| 欧美Ⅴ性爱| 国产精品色片一区二区| 再深点灬舒服灬太大了好硬好爽| 婷婷天堂站| 欧美人妻色| 性色aV一区二区三区噜噜| 久干9操| 岛国精品视频在线观看 | 欧美1区二区三区公司| 麻豆人妻偷人精品无码视频| 色色激情五月天| 国产美女口爆吞精视频| 色香91| 亚熟在线| 久久激情视频| 欧美性爱第一区| 久久久久久9| q2午夜理论片夜色av| 中文字幕在线观看AV| 国产CHASE男男GAYGA 毛多色婷婷| 91狠狠| 亚洲双插| 国产一区二区久久| 91人人看| 俺去也婷婷| 久久久国产亚洲精品系列| 欧美资源| 男人的天堂久久| 国产偷人妻精品一区二区在线| 久久这里都是精品| 操美女高潮抽搐白浆| 亚洲一区二区三区中文字幕| 91亚洲欧洲| 日韩欧美三级| 日韩中文9| 手机久操欧美综合色码| 91人妻超碰| 骚逼高潮久久精品| 欧美成人一区二区三区在线播放| 午夜男女爽爽爽影院视频| 天天综合色图| 蜜汁欧美| 天天综合站| 在线免费试看60秒| 怡红院成人av| 5252色欧美在线| 欧美久久草熟女| julia高潮后不停追击中出| 最新日韩黄片| 天天日天天干天天整| 在线欧美69V免费观看视频| 久久久精品91八戒| 亚洲成人精品在线一区| av影片在线观看不卡| 久久精品区| 欧亚三区动漫| 中文有码9| 熟妇人妻精品一区二区| 青草精品视频一日本久久久久网站| 精彩久久中文| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 91女网站| 欧美亚综合色图| 96AV久久久| 91日日| 高潮嗯啊性感美女久久久| 激情亚洲天堂| 青娱乐蜜桃臀AV色婷| 国产91精品久久久久久久网曝门| 综合久欧洲| 和协影院中文字幕三区| 男人的天堂在线| 九久久精品| 黑人在线91| 久操97| 97无码视频在线播放| 欧美一级美片在线观看免费| 亚川综合视频| 国产女人操逼视频| 亚洲午夜av| 久久国产精品91| 极品粉嫩少妇视频| 亚洲se电影|