在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

API 網關詳細介紹(上)

jf_78858299 ? 來源:Steve的后端小棧 ? 作者: Steave ? 2023-05-04 17:28 ? 次閱讀

業界有很多流行的 API 網關,開源的有 Nginx、Netflix Zuul、Kong 等。當然 Kong 還有商業版,類似的商業版網關還有 GoKu API Gateway 和 Tyk 等。

GoKu API Gateway 是由國內公司 eolinker 使用 Go 語言研發,擁有社區版和商業版,包含 API Gateway 和 Dashboard 兩部分。其中社區版本包含大量基礎功能,可以滿足中型企業和產品的使用;企業版本包含更多擴展;比較適合大型軟件和大型組織使用。

Tyk 由國外的 TykTechnologies 公司研發,也是基于 Go 語言。Tyk 一切均導向收費版本,免費版本第一次申請有一年的使用授權。

下面將會介紹常用的 API 網關組件 Nginx、Zuul 和 Kong 的相關特性。

Nginx

Nginx 可以說是互聯網應用的標配組件,主要的使用場景包括負載均衡、反向代理、代理緩存、限流等。

Nginx 由內核和模塊組成,內核的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找配置文件與客戶端請求進行 URL 匹配,用于啟動不同的模塊去完成相應的工作。

Nginx 在啟動后,會有一個 Master 進程和多個 Worker 進程,Master 進程和 Worker 進程之間是通過進程間通信進行交互的,如圖所示。Worker 工作進程的阻塞點是在像 select()、epoll_wait() 等這樣的 I/O 多路復用函數調用處,以等待發生數據可讀 / 寫事件。Nginx 采用了異步非阻塞的方式來處理請求,也就是說,Nginx 是可以同時處理成千上萬個請求的。

圖片

還可以將 Lua 嵌入到 Nginx 中,從而可以使用 Lua 來編寫腳本,這樣就可以使用 Lua 編寫應用腳本,部署到 Nginx 中運行,即 Nginx 變成了一個 Web 容器;這樣開發人員就可以使用 Lua 語言開發高性能Web應用了。在開發的時候使用 OpenResty 來搭建開發環境,OpenResty 將 Nginx 核心、LuaJIT、許多有用的 Lua 庫和 Nginx 第三方模塊打包在一起;這樣只需要安裝 OpenResty,不需要了解 Nginx 核心和寫復雜的 C/C++ 模塊就可以,只需要使用 Lua 語言進行 Web 應用開發了。

使用 Nginx 的反向代理和負載均衡可實現負載均衡及高可用,除此之外還需要我們解決自注冊和網關本身的擴展性。

Springcloud-gateway

Spring Cloud Gateway 是 Spring Cloud 微服務生態下的網關組件。Spring Cloud Gateway 是基于 Spring 5 和 Spring Boot 2 搭建的

Netflix Zuul

Zuul 是 Netflix 開源的微服務網關組件,它可以和 Eureka、Ribbon、Hystrix 等組件配合使用。社區活躍,融合于 SpringCloud 完整生態,是構建微服務體系前置網關服務的最佳選型。Zuul 的核心是一系列的過濾器,這些過濾器可以完成以下功能:

  • 身份認證與安全:識別每個資源的驗證要求,并拒絕那些與要求不符的請求。
  • 審查與監控:與邊緣位置追蹤有意義的數據和統計結果,從而帶來精確的生產視圖。
  • 動態路由:動態地將請求路由到不同的后端集群。
  • 壓力測試:逐漸增加指向集群的流量,以了解性能。
  • 負載分配:為每一種負載類型分配對應容量,并棄用超出限定值的請求。
  • 靜態響應處理:在邊緣位置直接建立部分響應,從而避免其轉發到內部集群。
  • 多區域彈性:跨越 AWS Region 進行請求路由,旨在實現 ELB(Elastic Load Balancing,彈性負載均衡)使用的多樣化,以及讓系統的邊緣更貼近系統的使用者。

上面提及的這些特性是 Nigix 所沒有的,Netflix 公司研發 Zuul 是為了解決云端的諸多問題(特別是幫助 AWS 解決跨 Region 情況下的這些特性實現),而不僅僅是做一個類似于 Nigix 的反向代理,當然,我們可以僅使用反向代理功能,這里不多做描述。

Zuul 目前有兩個大的版本:Zuul1 和 Zuul2。

  • Zuul1 是基于 Servlet 框架構建,如圖所示,采用的是阻塞和多線程方式,即一個線程處理一次連接請求,這種方式在內部延遲嚴重、設備故障較多情況下會引起存活的連接增多和線程增加的情況發生。
  • Netflix 發布的 Zuul2 有重大的更新,它運行在異步和無阻塞框架上,每個 CPU 核一個線程,處理所有的請求和響應,請求和響應的生命周期是通過事件和回調來處理的,這種方式減少了線程數量,因此開銷較小。

Kong

Kong 是 Mashape 開源的高性能高可用 API 網關和 API 服務管理層,一款基于 Nginx_Lua 模塊寫的高可用服務網關,由于 Kong 是基于 Nginx 的,所以可以水平擴展多個 Kong 服務器。通過前置的負載均衡配置把請求均勻地分發到各個 Server,來應對大批量的網絡請求。

Nginx、Zuul 和 Kong 這三種 API 網關組件的功能和特性,并制作了如下的對比表格:

組件/指標 Nginx Zuul(1.x)/springcloud gateway Kong 社區版
API 注冊/動態路由 在Nginx中配置 動態路由 通過 Admin API 管理
支持協議 RESTful API RESTful API RESTful API
插件機制 Lua 插件機制 可以基于源碼定制開發,基于 Servlet/Filter Lua 插件機制
安全認證 & 鑒權 插件支持 支持 OAuth、JWT 等 支持OAuth2.0、黑白名單、ACL、JWT、SSL 等
限流 插件 插件 支持Rate Limiting
高可用集群 配合硬件負載均衡 可以通過部署多個 Zuul 做負載均衡 支持集群
可管理性 沒有 GUI 管理臺 提供 Rest API 交互
性能 一般
日志記錄 Nginx 可靈活記日志 可自行配置 日志可以記錄到磁盤,或者HTTP、TCP、UDP發出去

總得來說,Zuul 復雜度較低,上手簡單,可以自定義開發,但是高并發場景下的性能相對較差;Nginx 性能經受得住考驗,配合 Lua 可以引入各種插件,但是功能性相對較弱,需要開發者自身去完善很多功能;Kong 基于 Nginx、OpenResty 和 Lua,對性能要求高,需要對外開放,建議考慮使用 Kong。下面我們將重點介紹。

Kong網關介紹:

  • 為什么需要云原生網關?
  • Kong 介紹
  • Kong 的基本架構
  • 使用 Kong 構建服務網關
  • 幾種常用插件應用
  • 自定義插件的實踐

為什么需要 API 網關?

當使用單體應用程序架構時,客戶端(Web 或移動端)通過向后端應用程序發起一次 REST 調用來獲取數據。負載均衡器將請求路由給 N 個相同的應用程序實例中的一個。然后應用程序會查詢各種數據庫表,并將響應返回給客戶端。微服務架構下,單體應用被切割成多個微服務,如果將所有的微服務直接對外暴露,勢必會出現安全方面的各種問題。

客戶端可以直接向每個微服務發送請求,其問題主要如下:

  • 客戶端需求和每個微服務暴露的細粒度 API 不匹配。
  • 部分服務使用的協議不是Web友好協議??赡苁褂?Thrift 二進制 RPC,也可能使用 AMQP 消息傳遞協議。
  • 微服務難以重構。如果合并兩個服務,或者將一個服務拆分成兩個或更多服務,這類重構就非常困難了。

服務端的各個服務直接暴露給客戶端調用勢必會引起各種問題。同時,服務端的各個服務可擴展和伸縮性很差。API 網關是微服務架構中的基礎組件,位于接入層之下和業務服務層之上,如前所述的這些功能適合在 API 網關實現。

關于服務網關的開源組件,有 Netflix Zuul、Spring Cloud Gateway、Kong、Traefik、NGINX 和服務網關類型的 Envoy 等。我們現在使用的是可編程的新型網關:Spring Cloud Gateway, Spring Cloud Gateway是基于WebFlux異步編程技術。本文主要介紹現代微服務網關 Kong,在 Kong 的官網介紹中,第一條特性便是 Kong 的云原生屬性:與平臺無關,Kong 可以從裸機運行到 Kubernetes。本文基于 Kong 1.2.1,自定義插件部分會涉及部分 Lua 編碼,適合服務端開發和運維人員。

  1. 什么是 Kong

    當我們決定對應用進行微服務改造時,應用客戶端如何與微服務交互的問題也隨之而來,畢竟服務數量的增加會直接導致部署授權、負載均衡、通信管理、分析和改變的難度增加。

    面對以上問題,API GATEWAY是一個不錯的解決方案,其所提供的訪問限制、安全、流量控制、分析監控、日志、請求轉發、合成和協議轉換功能,可以解放開發者去把精力集中在具體邏輯的代碼,而不是把時間花費在考慮如何解決應用和其他微服務鏈接的問題上。

  2. 為什么使用Kong

    在眾多 API GATEWAY 框架中,Mashape 開源的高性能高可用API網關和API服務管理層——KONG(基于 NGINX)特點尤為突出,它可以通過插件擴展已有功能,這些插件(使用 lua 編寫)在API請求響應循環的生命周期中被執行。于此同時,KONG本身提供包括 HTTP 基本認證、密鑰認證、CORS、TCP、UDP、文件日志、API請求限流、請求轉發及 NGINX 監控等基本功能。目前,Kong 在 Mashape 管理了超過 15,000 個 API,為 200,000 開發者提供了每月數十億的請求支持。

Kong 的基本架構

Kong 是基于 Nginx 的,所以可以水平擴展多個 Kong 服務器。通過前置的負載均衡配置把請求均勻地分發到各個 Server,來應對大批量的網絡請求。

圖片

Kong 主要有三個組件:

  • Kong Server :基于nginx的服務器,用來接收 API 請求。
  • Apache Cassandra/PostgreSQL:用來存儲操作數據。
  • Kong dashboard:官方推薦 UI 管理工具,當然,也可以使用 restfull 方式管理 admin api。

Kong 采用插件機制進行功能定制,插件集(可以是 0 或 N 個)在 API 請求響應循環的生命周期中被執行。插件使用 Lua 編寫,基礎功能包括:HTTP 基本認證、密鑰認證、CORS(Cross-Origin Resource Sharing,跨域資源共享)、TCP、UDP、文件日志、API 請求限流、請求轉發以及 Nginx 監控等。

Kong 網關具有以下的特性:

  • 可擴展性: 通過簡單地添加更多的服務器,可以輕松地進行橫向擴展,這意味著您的平臺可以在一個較低負載的情況下處理任何請求;
  • 模塊化: 可以通過添加新的插件進行擴展,這些插件可以通過RESTful Admin API輕松配置;
  • 在任何基礎架構上運行: Kong 網關可以在任何地方都能運行??梢栽谠苹騼炔烤W絡環境中部署 Kong,包括單個或多個數據中心設置,以及 public,private 或 invite-only APIs。

常用概念

Kong 中常用的術語介紹,這些術語會在下面的實踐中經常用到。

  • Route:請求的轉發規則,按照 Hostname 和 PATH,將請求轉發給 Service;
  • Services:多個 Upstream 的集合,是 Route 的轉發目標;
  • Consumer:API 的用戶,記錄用戶信息
  • Plugin:插件,可以是全局的,也可以綁定到 Service、Router 或者 Consumer;
  • Certificate:https 配置的證書;
  • Sni:域名與 Certificate 的綁定,指定了一個域名對應的 https 證書;
  • Upstream:上游對象用來表示虛擬主機名,擁有多個服務(目標)時,會對請求進行負載均衡;
  • Target:最終處理請求的 Backend 服務。

使用 Kong 構建服務網關

客戶端的請求將會首先經由微服務網關處理,一些通用的功能切面將會在網關生效,即 Kong 中的插件,之后才會將請求進行轉發到對應的 Backend 服務,如下圖所示。

安裝實踐

目前 Kong 的最新版本 1.2,Kong 的安裝支持多種方式。官方支持如下列出方式的安裝:

圖片

除了官方提供的安裝方式,還有社區提供的安裝方式,詳細了解參見:https://konghq.com/install/。

一、安裝Kong

1.構建 Kong 的容器網絡

首先我們創建一個 Docker 自定義網絡,以允許容器相互發現和通信。在下面的創建命令中 kong-net 是我們創建的 Docker 網絡名稱。

docker network create kong-net

2.搭建數據庫環境

Kong 目前使用 Cassandra 或者 PostgreSQL,你可以執行以下命令中的一個來選擇你的 Database。請注意定義網絡 --network=kong-net 。

使用 PostgreSQL:

docker pull postgres:9.6

 docker run -d --name kong-database \\
                --network=kong-net \\
                -p 5432:5432 \\
                -e "POSTGRES_USER=kong" \\
                -e "POSTGRES_DB=kong" \\
                -e "POSTGRES_PASSWORD=kong" \\
                postgres:9.6

3.初始化或者遷移數據庫

我們使用 docker run --rm 來初始化數據庫,該命令執行后會退出容器而保留內部的數據卷(volume)。這個命令我們還是要注意的,一定要跟你聲明的網絡,數據庫類型、host 名稱一致。

下面指定的數據庫是 PostgreSQL:


docker run --rm \\
      --network=kong-net \\
      -e "KONG_DATABASE=postgres" \\
      -e "KONG_PG_HOST=kong-database" \\
      -e "KONG_PG_PASSWORD=kong" \\
      -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \\
      kong:1.5.1 kong migrations bootstrap

4.啟動 Kong 容器

完成初始化或者遷移數據庫后,我們就可以啟動一個連接到數據庫容器的 Kong 容器,請務必保證你的數據庫容器啟動狀態,同時檢查所有的環境參數 -e 是否是你定義的環境。


docker pull kong:1.5.1

 docker run -d --name kong \\
      --network=kong-net \\
      -e "KONG_DATABASE=postgres" \\
      -e "KONG_PG_HOST=kong-database" \\
      -e "KONG_PG_PASSWORD=kong" \\
      -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \\
      -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \\
      -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \\
      -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \\
      -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \\
      -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \\
      -p 8000:8000 \\
      -p 8443:8443 \\
      -p 8001:8001 \\
      -p 8444:8444 \\
      kong:1.5.1

Kong 默認綁定 4 個端口

8000:用來接收客戶端的 HTTP 請求,并轉發到 upstream。
 8443:用來接收客戶端的 HTTPS 請求,并轉發到 upstream。
 8001:HTTP 監聽的 API 管理接口。
 8444:HTTPS 監聽的 API 管理接口。

到這里,Kong 已經安裝完畢,我們可以使用 docker ps 命令查看當前運行容器,正常情況下可以看到 Kong 和 PostgreSQL 的兩個容器:


docker ps

圖片

我們可以通過 curl -i http://192.168.1.200:8001 來查看 Kong 是否運行完好。

二、安裝Kong UI

Kong 企業版提供了管理 UI,開源版本是沒有的。但是有很多的開源的管理 UI ,其中比較流行的有Kong Dashboard 和 Konga。簡單介紹一下 Kong Dashboard 和 Konga。

1.Kong Dashboard

docker 環境中安裝運行如下:


docker pull pgbi/kong-dashboard

 docker run --rm  \\
 --network=kong-net \\
 -p 8080:8080 \\
 pgbi/kong-dashboard start \\
 --kong-url http://kong:8001

啟動之后,可以在瀏覽器中輸入 http://192.168.1.200:8080/ 來訪問 Kong Dashboard 管理界面。

2.Konga

Konga(官網地址:pantsel.github.io/konga/,Github地址:github.com/pantsel/kon… )可以很好地通過 UI 觀察到現在 Kong 的所有的配置,并且可以對于管理Kong節點情況進行查看、監控和預警。Konga主要是用 AngularJS 寫的,運行于 nodejs 服務端。具有以下特性:

  • 管理所有 Kong Admin API 對象。
  • 支持從遠程源(數據庫,文件,API等)導入使用者。
  • 管理多個 Kong 節點。使用快照備份,還原和遷移 Kong 節點。
  • 使用運行狀況檢查監視節點和 API 狀態。
  • 支持電子郵件和閑置通知。
  • 支持多用戶。
  • 易于數據庫集成(MySQL,PostgresSQL,MongoDB,SQL Server)。

下面使用的 PostgreSQL 是和上面在 docker 環境中安裝 Kong 時的是一致的,注意用戶名、密碼、數據庫名稱等配置,docker 環境安裝啟動 Konga:

docker pull pantsel/konga

 docker run  -d -p 1337:1337 \\
         --network kong-net \\
         --name konga \\
         -e "DB_ADAPTER=postgres" \\
         -e "DB_URI=postgresql://kong:kong@kong-database/kong" \\
         pantsel/konga

如果 Konga 容器啟動成功,可以通過 http://192.168.1.200:1337/ 訪問管理界面。通過注冊后進入,然后在 CONNECTIONS 中添加 Kong 服務的管理路徑 http://192.168.1.200:8001。Konga 管理界面示例如下:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網關
    +關注

    關注

    9

    文章

    4558

    瀏覽量

    51301
  • API
    API
    +關注

    關注

    2

    文章

    1507

    瀏覽量

    62217
  • nginx
    +關注

    關注

    0

    文章

    151

    瀏覽量

    12195
  • go語言
    +關注

    關注

    1

    文章

    158

    瀏覽量

    9059
收藏 人收藏

    評論

    相關推薦

    API信息全掌控,方便你的日志管理——阿里云推出API網關打通日志服務

    摘要: 近日,阿里云API網關對接了日志服務,可以輸出用戶在API網關產生的API調用日志,目前支持將
    發表于 02-06 15:24

    哪位大神可以詳細介紹一下MQTT API嗎?

    MQTT API介紹
    發表于 04-02 07:24

    AI邊緣計算網關介紹

    AI邊緣計算網關介紹:智能網關支持物聯網硬件多協議接入,適應各種無線通信協議場景。只需通過硬件板卡的快速裝卸,就可以實現功能的自由增刪。同時智能網關運行Mosquitto等服務實現了M
    發表于 07-26 06:41

    介紹ZigBee網關的架構

    前面的文章中,我們通過實際案例介紹了 ZigBee 網關的架構,相信大家對于網關該如何挑選合適的器件來實現相應功能有了一定了解。那么本文將從硬件設計的角度來繼續網關的話題!硬件電路是
    發表于 11-11 08:18

    介紹LoRaWAN網關的技術基礎及其工作原理

    /軟件組件四、總結在上一篇文章中我大概解釋了什么是LoRaWAN網關。今天我將會更詳細地給大家介紹LoRaWAN網關的技術基礎及其工作原理。只有了解這些,我們才能讓我們更好地了解
    發表于 02-14 07:45

    ESP8266 Node MCU-API 函數的詳細中文說明

    本文檔的主要內容詳細介紹的是ESP8266的Node MCU-API 函數的詳細中文說明。
    發表于 09-21 08:00 ?103次下載

    什么是API網關為什么需要API網關

    API網關可以看做系統與外界聯通的入口,我們可以在網關進行處理一些非業務邏輯的邏輯,比如權限驗證,監控,緩存,請求路由等等。
    發表于 12-23 09:57 ?1.3w次閱讀
    什么是<b class='flag-5'>API</b><b class='flag-5'>網關</b>為什么需要<b class='flag-5'>API</b><b class='flag-5'>網關</b>

    如何在騰訊云添加LoRaWAN網關,詳細步驟介紹

    我們可以在騰訊云創建項目,并將LoRaWAN網關連接到騰訊云,從而我們就可以利用到騰訊云SERVER的強大功能,來更方便的查看接收到的監控數據。 本文介紹如何在騰訊云已創建好的項目的基礎
    發表于 07-02 16:42 ?1972次閱讀
    如何在騰訊云<b class='flag-5'>上</b>添加LoRaWAN<b class='flag-5'>網關</b>,<b class='flag-5'>詳細</b>步驟<b class='flag-5'>介紹</b>

    ESP8266字符串API詳細概述

    本文檔的主要內容詳細介紹的是ESP8266字符串API詳細概述。
    發表于 07-17 08:00 ?1次下載
    ESP8266字符串<b class='flag-5'>API</b>的<b class='flag-5'>詳細</b>概述

    Service Mesh和API網關正在逐步融合

    API Gateway 之間的關系,這個問題過去兩年間經常被問起,社區也有不少文章和資料給出解答。其中不乏 Christian Posta 這樣的網紅給出過深度介紹。我在這里做一個資料的整理和匯總,結合
    的頭像 發表于 10-10 16:39 ?1218次閱讀

    關于API網關策略的知識分享

    近些年隨著云原生和微服務架構的日趨發展,API 網關以流量入口的角色在技術架構中扮演著越來越重要的作用。API 網關主要負責接收所有請求的流量并進行處理轉發至上游服務,
    的頭像 發表于 02-11 10:45 ?1220次閱讀

    API 網關詳細介紹(下)

    業界有很多流行的 API 網關,開源的有 Nginx、Netflix Zuul、Kong 等。當然 Kong 還有商業版,類似的商業版網關還有 GoKu API Gateway 和 T
    的頭像 發表于 05-04 17:28 ?887次閱讀
    <b class='flag-5'>API</b> <b class='flag-5'>網關</b><b class='flag-5'>詳細</b><b class='flag-5'>介紹</b>(下)

    為什么需要 API 網關?

    API 網關API 全生命周期管理的關鍵基礎組件,負責生產環境中 API 的配置、發布、版本回滾、安全、負載均衡等。API
    的頭像 發表于 05-04 17:47 ?804次閱讀
    為什么需要 <b class='flag-5'>API</b> <b class='flag-5'>網關</b>?

    企業怎么選擇API網關

    ? 一、API網關的用處 API網關我的分析中會用到以下三種場景。 1、Open API 企業需要將自身數據、能力等作為開發平臺向外開放,通
    的頭像 發表于 05-23 11:05 ?685次閱讀
    企業怎么選擇<b class='flag-5'>API</b><b class='flag-5'>網關</b>

    api網關 kong 教程入門

    統一權限控制、接口請求訪問日志統計 安全,是保護內部服務而設計的一道屏障 開源-最大好處 當然也有一個很大的缺點,api-gw很可能成為性能瓶頸,因為所有的請求都經過這里,可以通過橫向擴展和限流解決這個問題。 在眾多API GATEWAY框架中,Mashape開源的高性
    的頭像 發表于 11-10 11:39 ?817次閱讀
    <b class='flag-5'>api</b><b class='flag-5'>網關</b> kong 教程入門
    主站蜘蛛池模板: bt在线www天堂资源网| 轻点灬大ji巴太粗太大了小说| 欧美视频综合| 一区二区三区四区电影| 乱妇伦小说| 91三级在线| 成年人看的黄色| 人人看人人做| 国产爽视频| 亚洲一区 在线播放| 国产热视频| 亚洲国产精品综合久久网络| 男男h啪肉np文总受| a男人的天堂久久a毛片| 亚洲 欧美 日韩 在线 中文字幕| 色综合久久九月婷婷色综合| 欧美成人精品欧美一级乱黄| 日韩a免费| 老色皮| www.91在线播放| 手机在线看福利| 91福利免费视频| tdg58在线观看| 一女被多男玩很肉很黄文| 中文字幕有码视频| 瑟瑟网站免费| 级毛片| 天天干天天做天天操| 91极品女神私人尤物在线播放| 男女交性视频免费视频| 午夜五月天| 久久精品99| 国产午夜精品一区二区理论影院| 教官的好爽好深h片段| 在线免费影视| 国产破苞合集 magnet| 亚洲欧美一区二区三区另类| 天堂一区二区三区在线观看| 性人久久久久| 黄页在线播放网址| 天天爱天天操天天射|