精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為ML模型注入靈魂:基于MVP的超簡(jiǎn)單部署方案

人工智能 機(jī)器學(xué)習(xí)
開發(fā)一個(gè)出色的機(jī)器學(xué)習(xí)模型是一件棘手的事,但即使開發(fā)完成也不意味著工作的結(jié)束。在部署之前,它仍然毫無用處,他人可以輕易訪問。

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

開發(fā)一個(gè)出色的機(jī)器學(xué)習(xí)模型是一件棘手的事,但即使開發(fā)完成也不意味著工作的結(jié)束。在部署之前,它仍然毫無用處,他人可以輕易訪問。

部署模型的方法有很多,筆者想談一種適用于基本MVP的非常簡(jiǎn)單的解決方案——使用Flask為模型編寫API,將Gunicorn用于軟件服務(wù)器,將Nginx用于網(wǎng)站服務(wù)器,并將其包裝在Docker中,以便更輕松地在其他機(jī)器(特別是AWS和GCP)上進(jìn)行部署。

[[328507]]

設(shè)置服務(wù)器

筆者更喜歡用專門為此租用的服務(wù)器,而不是使用私人或工作硬件對(duì)新配置進(jìn)行實(shí)驗(yàn)。這樣,即使某些東西被嚴(yán)重?fù)p毀,也無關(guān)緊要。

因此筆者建議使用Linode,筆者本人就是用其來進(jìn)行實(shí)驗(yàn)的,它們的硬件使用感不錯(cuò)。只要在Ubuntu18.04 LTS上,就可以隨心所欲使用其他任何服務(wù)。

這一部分適合使用Linides的人借鑒。導(dǎo)航到Linodes,然后單擊“添加Linode”。有些東西需要填寫。在發(fā)行版中,筆者建議選擇Ubuntu18.04 LTS映像:

  • 該區(qū)域——靠近你的區(qū)域(筆者用的是法蘭克福,德國(guó))
  • Linode計(jì)劃——Nanode(每月僅需5美元,就需求而言足夠了)
  • 根密碼——你的密碼

然后單擊“創(chuàng)建”。大約幾分鐘后,可以轉(zhuǎn)到“網(wǎng)絡(luò)”,在這里能找到有關(guān)通過SSH訪問服務(wù)器的信息。

為ML模型注入靈魂:基于MVP的超簡(jiǎn)單部署方案

下一步應(yīng)連接服務(wù)器,并創(chuàng)建具有sudo特權(quán)的非根用戶。這個(gè)操作背后的邏輯相當(dāng)簡(jiǎn)單:你不想在服務(wù)器上把所有東西都作為根運(yùn)行,因?yàn)檫@樣更容易損壞東西。

  1. adduser usernameusermod -aG sudousername 

最終,切換到新用戶。

  1. su — username 

創(chuàng)建應(yīng)用容器

整個(gè)系統(tǒng)配置分為兩部分:應(yīng)用程序容器(Flask +Gunicorn)和Web容器(Nginx Web服務(wù)器)。

 

[[328508]]

 

 

圖源:unsplash

 

(1) 步驟0——安裝Docker和Docker Compose

Docker和Docker-compose安裝非常簡(jiǎn)單,分別在4行和2行內(nèi)就能完成。

(2) 步驟1——創(chuàng)建FlaskApp和WSGI入口點(diǎn)

在主目錄中創(chuàng)建flask app目錄,并將以下文件放入其中。

  1. from flask importFlask 
  2.              server =Flask(__name__) 
  3.              @server.route('/') 
  4.       defhello_world(): 
  5.           return'hello world!' 

這是最基礎(chǔ)的Flask應(yīng)用,幾乎沒有任何功能,不用加載任何模型,不添加任何GET /POST請(qǐng)求和內(nèi)容(這些將在下文出現(xiàn))。現(xiàn)在,我們只有一個(gè)主頁上顯示著“ helloworld”的應(yīng)用程序。

這部分極為簡(jiǎn)單——只需為Gunicorn創(chuàng)建一個(gè)在端口8000上運(yùn)行的單獨(dú)文件。

(3) 步驟2——為Flask創(chuàng)建一個(gè)Docker映像

現(xiàn)在,我們需要?jiǎng)?chuàng)建一個(gè)將運(yùn)用這些文件的Dockerfile,并創(chuàng)建一個(gè)稍后能運(yùn)行的映像。

  1. FROM python:3.6.7 
  2.              WORKDIRusr/src/flask_app 
  3.            COPYrequirements.txt . 
  4.            RUN pip install--no-cache-dir -r requirements.txt 
  5.            COPY . . 

對(duì)于不熟悉Docker的人而言,此腳本的功能如下:

  • 導(dǎo)入Python 3.6.7圖像
  • 設(shè)置所有文件的工作目錄
  • 復(fù)制包含F(xiàn)lask、Gunicorn和運(yùn)行Flask應(yīng)用程序需要的所有其他文件的需求文件。

然后,通過RUN命令安裝所有必要安裝包,最后將所有文件從flaskdir復(fù)制到容器內(nèi)的usrscrflask 應(yīng)用程序中。現(xiàn)在只需將此文件放在相同的flask_app目錄中,并添加requirements.txt即可。

  1. flask 
  2.      gunicorn 

請(qǐng)記住,如果你對(duì)目錄和內(nèi)容感到困惑,只需在文章結(jié)尾處檢查完整的項(xiàng)目結(jié)構(gòu),或訪問GitHub存儲(chǔ)庫(kù)。

(4) 步驟3——創(chuàng)建Nginx文件

 

[[328509]]

 

 

圖源:unsplash

 

為運(yùn)行Nginx,需要配置一些內(nèi)容。但在邁出下一步之前,請(qǐng)?jiān)谥髂夸泝?nèi)創(chuàng)建nginx目錄(與flask_app處于同一級(jí)別)。之后,我們需要的第一個(gè)文件是nginx.conf,該文件幾乎包含所有基本的Nginx信息和變量。

來看一個(gè)Nginx基本設(shè)置:

  1. # Define the user that will own and run theNginx server 
  2.       user  nginx; 
  3.       # Define the number of worker processes;recommended value is the number of 
  4.       # cores that are being used by yourserver 
  5.       worker_processes  1; 
  6.       # Define the location on the file systemof the error log, plus the minimum 
  7.       # severity to log messages for 
  8.       error_log  /var/log/nginx/error.log warn; 
  9.       # Define the file that will store theprocess ID of the main NGINX process 
  10.       pid        /var/run/nginx.pid; 
  11.              # events blockdefines the parameters that affect connection processing. 
  12.       events { 
  13.           # Define themaximum number of simultaneous connections that can be opened by a workerproce$ 
  14.           worker_connections  1024; 
  15.       } 
  16.              # http blockdefines the parameters for how NGINX should handle HTTP web traffic 
  17.       http { 
  18.           # Include thefile defining the list of file types that are supported by NGINX 
  19.           include       /etc/nginx/mime.types; 
  20.           # Define thedefault file type that is returned to the user 
  21.           default_type  text/html; 
  22.           # Define theformat of log messages. 
  23.           log_format main  '$remote_addr - $remote_user [$time_local] "$request" ' 
  24.                             '$status$body_bytes_sent "$http_referer" ' 
  25.                             '"$http_user_agent" "$http_x_forwarded_for"'; 
  26.                                 # Define thelocation of the log of access attempts to NGINX 
  27.           access_log  /var/log/nginx/access.log  main; 
  28.           # Define theparameters to optimize the delivery of static content 
  29.           sendfile        on; 
  30.           tcp_nopush     on; 
  31.           tcp_nodelay    on; 
  32.           # Define thetimeout value for keep-alive connections with the client 
  33.           keepalive_timeout  65; 
  34.           # Define the usageof the gzip compression algorithm to reduce the amount of data to transmit 
  35.           #gzip  on; 
  36.           # Includeadditional parameters for virtual host(s)/server(s) 
  37.           include/etc/nginx/conf.d/*.conf; 
  38.       } 

第二個(gè)文件——特定應(yīng)用程序的配置。想要做到這一點(diǎn)有兩種比較普遍的方法:

  • 在/ etc /nginx / sites-available / your_project中創(chuàng)建一個(gè)配置文件,然后創(chuàng)建到/ etc /nginx / sites-enabled / your_project的符號(hào)鏈接。
  • 只需在主要Nginx目錄中創(chuàng)建一個(gè)project.conf。下述為第二種方法。
    1. server { 
    2.                  listen 80; 
    3.          server_name docker_flask_gunicorn_nginx; 
    4.                  location / { 
    5.              proxy_pass http://flask_app:8000; 
    6.                      # Do not change this 
    7.              proxy_set_header Host $host; 
    8.              proxy_set_header X-Real-IP $remote_addr; 
    9.              proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for; 
    10.          } 
    11.                  location /static { 
    12.              rewrite ^/static(.*) /$1 break; 
    13.              root /static; 
    14.          } 
    15.       } 

有幾點(diǎn)需要注意:首先,請(qǐng)看一下listen80,該命令指定應(yīng)用將在哪個(gè)端口運(yùn)行。作為默認(rèn)端口,我們選擇80。其次,服務(wù)器名稱。你可以指定從Linode獲得的IP地址,也可以只使用docker映像名稱。

最后,proxy pass命令,該命令應(yīng)將Nginx配置指向flask項(xiàng)目。由于flask容器的名稱為flask_app(將在后面介紹),因此只須使用容器的名稱以及Flask項(xiàng)目中指定的端口。

(5) 步驟4——為Nginx創(chuàng)建一個(gè)Docker映像

該特定Docker映像非常簡(jiǎn)單。與Flask一樣,它僅包含5行,且僅執(zhí)行2件事:

  1. FROM nginx:1.15.8 
  2.              RUN rm/etc/nginx/nginx.conf 
  3.            COPY nginx.conf/etc/nginx/ 
  4.            RUN rm/etc/nginx/conf.d/default.conf 
  5.            COPY project.conf/etc/nginx/conf.d/ 

導(dǎo)入nginx圖片,復(fù)制文件,并將其替換為默認(rèn)文件。

(6) 步驟5——將Dockerfiles與docker-compose結(jié)合

現(xiàn)在已有2個(gè)Dockerfile:

  • 一個(gè)用于Flask + Gunicorn
  • 另一個(gè)用于Nginx。

現(xiàn)在是時(shí)候讓它們交互,并運(yùn)行整個(gè)系統(tǒng)了。為完成這一點(diǎn),要用到docker-compose。我們只需要在主目錄中創(chuàng)建docker-compose.yml文件。

  1. version: '3' 
  2.              services: 
  3.           flask_app: 
  4.            container_name: flask_app 
  5.            restart: always 
  6.            build: ./flask_app 
  7.            ports: 
  8.              - "8000:8000" 
  9.            command: gunicorn -w 1 -b 0.0.0.0:8000 wsgi:server 
  10.                nginx: 
  11.            container_name: nginx 
  12.            restart: always 
  13.            build: ./nginx 
  14.            ports: 
  15.              - "80:80" 
  16.            depends_on: 
  17.              - flask_app 

為了解其工作原理,我們來處理幾個(gè)重要問題:

  • 首先,docker-compose分為2部分(2個(gè)服務(wù)):flask_app和nginx。正如從以下幾行中看到的那樣——flask_app容器執(zhí)行運(yùn)行Flask應(yīng)用程序的Gunicorn,并用1個(gè)工作程序?qū)⑵滢D(zhuǎn)換為8000端口。
  • 第二個(gè)容器僅在80端口上運(yùn)行Nginx。另外,請(qǐng)注意depends_on部分,該部分命令docker-compose首先啟動(dòng)flask_app容器,然后才是——-nginx,因?yàn)檫@兩個(gè)容器相互依賴。

 

[[328510]]

 

 

圖源:unsplash

 

此外,還應(yīng)添加一件事,以便更輕松運(yùn)行此Docker設(shè)置。那就是run_docker.sh文件。

  1. echo killing old dockerprocesses 
  2.         docker-compose rm -fs 
  3.              echo building dockercontainers 
  4.         docker-compose up --build -d 

該設(shè)置只是簡(jiǎn)單地運(yùn)行docker-compose,但首先要確保此時(shí)舊的docker進(jìn)程沒有處于活動(dòng)狀態(tài)。

(7) 步驟6——將所有設(shè)置放在一起

當(dāng)前的項(xiàng)目結(jié)構(gòu)應(yīng)如下所示:

  1. ├── flask_app 
  2. │   ├── app.py          
  3. │   ├── wsgi.py 
  4. │   └── Dockerfile 
  5. ├── nginx 
  6. │   ├── nginx.conf          
  7. │   ├── project.conf 
  8. │   └── Dockerfile 
  9. ├── docker-compose.yml 
  10. └── run_docker.sh 

在確保一切就緒之后,就能運(yùn)行docker了。

  1. bash run_docker.sh 

并通過導(dǎo)航到從Linode獲得的IP,然后在瀏覽器中查看主頁面:

為ML模型注入靈魂:基于MVP的超簡(jiǎn)單部署方案

(8) 步驟7——沒有得出任何成果,我該怎么辦?

先在Linode上租用一個(gè)服務(wù)器,安裝docker和docker-compose,接著克隆git存儲(chǔ)庫(kù),然后運(yùn)行bash run_docker.sh。

確保成功運(yùn)行后,開始更改內(nèi)容。嘗試使用Flask,Dockerfiles或docker-compose,直到出現(xiàn)故障。之后,嘗試找出問題所在,并著手解決。

(9) 步驟8-下一步呢?

 

[[328512]]

 

 

圖源:unsplash

 

接下來要添加的是支持FlaskApp中的POST請(qǐng)求。這樣,可以將請(qǐng)求發(fā)送到模型并獲得響應(yīng)。

需滿足兩點(diǎn):一個(gè)可以處理請(qǐng)求的模型,以及POST請(qǐng)求能夠自我支持。

  1. from flask importFlask, request,jsonify 
  2.              server =Flask(__name__) 
  3.              defrun_request(): 
  4.            index =int(request.json['index']) 
  5.            list = ['red', 'green', 'blue', 'yellow', 'black'] 
  6.            return list[index] 
  7.              @server.route('/', methods=['GET', 'POST']) 
  8.         defhello_world(): 
  9.            if request.method =='GET': 
  10.                return'The model is up and running. Send a POST request' 
  11.            else: 
  12.                returnrun_request() 

為方便起見,在這種情況下,該模型僅返回顏色列表的第i個(gè)元素。但實(shí)際上,運(yùn)行哪種模型都無關(guān)緊要,只需在所有方法上創(chuàng)建模型的實(shí)例(prettymuch where you have server = Flask(__name__))就可以了。

現(xiàn)在,如果導(dǎo)航到IP地址,將看到一條消息——“模型已啟動(dòng),正在運(yùn)行。發(fā)送POST請(qǐng)求”,因?yàn)橹恍柁D(zhuǎn)到IP就可將其視為GET請(qǐng)求。

但讓我們?cè)囍褂冒P退饕膉son文件發(fā)送POST請(qǐng)求。筆者使用Postman,但你可以視個(gè)人喜好而定(即Curl)。

為ML模型注入靈魂:基于MVP的超簡(jiǎn)單部署方案

行得通!現(xiàn)在,可以添加其它路徑,以接收GET /POST請(qǐng)求。該想法背后的原因是可以通過加載多個(gè)模型,根據(jù)URL將請(qǐng)求發(fā)送到特定模型。

(10) 步驟9——進(jìn)一步發(fā)展如何?

實(shí)際上,還有一個(gè)重要的步驟要做。為快速部署此Docker設(shè)置,將其部署在云空間是個(gè)不錯(cuò)的想法。這種方法的一個(gè)主要優(yōu)勢(shì)是:AWS將為群集管理基礎(chǔ)架構(gòu)提供保障。

你學(xué)會(huì)了嗎?

 

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2023-04-04 08:00:00

LazyPredic機(jī)器學(xué)習(xí)ML模型

2020-07-20 14:03:46

蘋果 iOS框架

2025-11-07 10:37:10

2019-01-23 11:12:42

機(jī)器學(xué)習(xí)機(jī)器模型預(yù)測(cè)工資

2020-08-23 11:48:44

Python云盤updog

2012-11-26 14:50:50

2022-06-08 08:43:02

Web3SBTsBlockcerts

2022-03-28 18:59:02

DockerFlask深度學(xué)習(xí)

2022-03-14 09:39:06

PythonPDF圖片

2025-02-19 07:53:19

2025-05-26 01:33:00

2024-07-12 11:35:20

2009-02-04 16:11:45

2022-10-31 11:33:30

機(jī)器學(xué)習(xí)參數(shù)調(diào)優(yōu)

2022-08-09 13:44:37

機(jī)器學(xué)習(xí)PySpark M數(shù)據(jù)分析

2013-12-10 10:32:45

華為沃達(dá)豐Lampsite

2013-10-10 14:46:54

華為eLTE方案華為eLTE華為

2013-08-16 15:19:40

華為遠(yuǎn)程醫(yī)療華為

2022-11-09 10:33:39

awk腳本Groovy

2017-05-12 18:30:05

AndroidMVP代碼結(jié)構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产区精品在线观看| 精品动漫一区二区三区在线观看| 日韩欧美一区二区在线观看| 中文字幕乱码人妻无码久久| 欧美激情777| 欧美一区二区三区日韩| 久久视频这里有精品| 国产视频第一区| 久久丁香综合五月国产三级网站| 欧美日韩国产91| 在线观看福利片| 高清国产一区二区三区四区五区| 亚洲成人动漫av| 亚洲a∨一区二区三区| 性一交一乱一伧老太| 久久这里有精品15一区二区三区| 久久国产精品久久久| 久久亚洲AV成人无码国产野外| 天天综合91| 欧美性xxxx极品hd欧美风情| 国产精品一二三在线观看| 国产小视频在线播放| 成人性生交大片免费看视频在线 | 久久久久久久国产精品毛片| 国产影视一区| 亚洲成色999久久网站| 一起操在线视频| 免费日韩电影| 午夜精品久久久久久久蜜桃app| 亚洲不卡1区| 日韩中文字幕免费在线观看| 另类成人小视频在线| 日本一欧美一欧美一亚洲视频| 欧美片一区二区| 欧美岛国激情| 正在播放欧美一区| 成人免费毛片糖心| 美日韩黄色大片| 日韩一级片网址| 午夜剧场在线免费观看| 日韩欧美一区二区三区免费观看 | 欧美贵妇videos办公室| 美女福利视频网| 欧美日韩精品一区二区视频| 国产视频精品va久久久久久| 国产乱了高清露脸对白| 成人在线超碰| 亚洲成人av中文字幕| 久久久无码人妻精品无码| 欧美9999| 日韩精品在线一区二区| 久久aaaa片一区二区| 精品国产亚洲一区二区三区大结局| 欧美日韩视频在线第一区| 黄色一级二级三级| 天然素人一区二区视频| 在线看日韩精品电影| 九九热免费精品视频| 免费高清视频在线一区| 欧美三级日本三级少妇99| 2025韩国理伦片在线观看| 国产精品伦一区二区| 欧美日韩精品久久久| www.色就是色.com| 欧美在线在线| 精品久久一二三区| 中国极品少妇videossexhd| 女同一区二区三区| 亚洲美女视频网| 蜜桃av乱码一区二区三区| 欧美一级本道电影免费专区| 最近2019中文字幕一页二页| 精品国产大片大片大片| 中文一区一区三区免费在线观看| 久久视频国产精品免费视频在线| 三级全黄做爰视频| 黄色亚洲在线| 欧美在线观看视频| 在线观看不卡的av| 国产精品一区在线| 久久99精品久久久久久久久久| 日本一本草久在线中文| 国产日韩欧美麻豆| 日本黄xxxxxxxxx100| 激情图片在线观看高清国产| 欧美性jizz18性欧美| 黄大色黄女片18第一次| 91久久偷偷做嫩草影院电| 亚洲精品wwwww| 成人小视频免费看| 欧美天堂亚洲电影院在线观看 | 亚洲欧美激情精品一区二区| 黑人と日本人の交わりビデオ| 一本一道久久综合狠狠老| 久久久久成人精品| 亚洲av无码乱码国产精品fc2| 国精品**一区二区三区在线蜜桃| 国产高清一区视频| 国产视频第一区| 亚洲专区一二三| 欧美丰满熟妇xxxxx| 欧一区二区三区| 亚洲一区第一页| 久久久久久久黄色| 麻豆91精品视频| 激情五月综合色婷婷一区二区| 成人在线免费观看| 性做久久久久久免费观看| 99热一区二区| 性人久久久久| 久久久噜噜噜久久| 国产一区二区三区视频免费观看| jlzzjlzz国产精品久久| 影音先锋在线亚洲| 欧美aa视频| 精品国产乱码久久久久久牛牛| 国产三级在线观看完整版| 亚洲三级电影在线观看| 91九色综合久久| 久久经典视频| 亚洲成a人v欧美综合天堂下载 | 国产suv精品一区| 色婷婷久久av| 97人妻一区二区精品视频| 成人91在线观看| 日韩在线视频在线| 色综合视频一区二区三区44| 亚洲日本成人女熟在线观看| www.99re7.com| 国产激情一区二区三区| 亚洲自拍三区| 成人精品高清在线视频| 亚洲欧洲xxxx| 一级黄色大片视频| 99久久精品费精品国产一区二区| av影院在线播放| 精品国产一区二区三区性色av| 中文字幕亚洲欧美日韩2019| 午夜久久久久久久久久影院| 2023国产一二三区日本精品2022| 国产av熟女一区二区三区| 国产精品亚洲一区二区在线观看| 精品国产一区二区三区四区在线观看 | 91麻豆精品91久久久久同性| 免费一级黄色录像| 奇米一区二区三区| 日韩av在线电影观看| 三级成人黄色影院| 亚洲图片制服诱惑| а中文在线天堂| 国产人久久人人人人爽| 日本xxxxxxx免费视频| 久久99免费视频| 国产成人免费av| av资源在线观看免费高清| 在线观看一区日韩| 午夜国产福利视频| 韩国午夜理伦三级不卡影院| 婷婷视频在线播放| 日韩高清在线观看一区二区| 欧美国产在线视频| 色偷偷在线观看| 欧美视频在线免费看| 草草影院第一页| 日韩精品一级中文字幕精品视频免费观看 | 色哟哟亚洲精品| 久久精品三级视频| 狠狠色狠狠色综合| 大地资源网在线观看免费官网| 视频在线亚洲| 91精品国产99| 成年人在线视频| 在线播放一区二区三区| 久久这里只有精品免费| av激情综合网| 9久久婷婷国产综合精品性色| 99久久亚洲精品| 成人免费视频网站| 偷拍视频一区二区三区| 日韩在线www| 国产小视频免费观看| 欧美网站在线观看| a级黄色免费视频| 豆国产96在线|亚洲| 999精品网站| 888久久久| 久久99热只有频精品91密拍| 福利一区和二区| 欧美精品激情在线| 在线免费av网站| 欧美精品一区二区三区很污很色的| 9i看片成人免费看片| 中文字幕一区在线观看| xxxx黄色片| 久久99精品久久久久久久久久久久 | 成人高清免费在线播放| 欧美一区二区女人| 一级做a爰片久久毛片| 亚洲欧美激情视频在线观看一区二区三区| 亚洲欧美日韩偷拍| 乱一区二区av| 无码人妻丰满熟妇区毛片18| 影音先锋日韩精品| 欧美日韩综合久久| 中文字幕一区二区三区中文字幕| 国产精欧美一区二区三区| 1024在线播放| 自拍偷拍亚洲精品| 四虎影视精品成人| 日韩欧美国产综合| 亚洲天堂999| 欧美日韩亚洲网| 久久久久久久极品内射| 国产精品丝袜久久久久久app| 中文在线观看免费视频| 黑人巨大精品欧美一区| 欧美激情精品久久久久久小说| 黄色欧美成人| 男女激烈动态图| 手机亚洲手机国产手机日韩| 欧美xxxx黑人又粗又长密月| 91大神精品| 91麻豆桃色免费看| 日本免费一区二区三区等视频| 欧美一区第一页| 啦啦啦中文在线观看日本| xxav国产精品美女主播| 最新97超碰在线| 亚洲一区999| 你懂的免费在线观看| 日韩成人中文电影| 姝姝窝人体www聚色窝| 精品嫩草影院久久| 国产高潮在线观看| 日韩亚洲欧美高清| 国产尤物在线观看| 欧美狂野另类xxxxoooo| 中文字幕一区二区三区四区免费看 | 欧洲金发美女大战黑人| 亚洲91视频| 一区二区三区四区| 亚洲成av人电影| 亚洲午夜精品一区二区| 日韩在线不卡| 一区二区三区四区视频在线| 日韩欧美一区免费| 伊人久久大香线蕉成人综合网 | 国产视频一区在线观看| 午夜理伦三级做爰电影| 久久色中文字幕| 国产精品无码永久免费不卡| 久久综合色婷婷| 中文字幕一二三四区| 国产午夜亚洲精品午夜鲁丝片 | 国产精品黄页免费高清在线观看| 欧美理论影院| 国产精品私拍pans大尺度在线 | 91久久久久久久久久久久久久 | 成人av资源站| 日本一卡二卡在线| 久久日一线二线三线suv| 国产aⅴ激情无码久久久无码| 久久久五月婷婷| 国产成人免费在线观看视频| 亚洲视频一二三区| 少妇高潮一区二区三区喷水| 一区二区三区日韩| 国产精品第9页| 色香色香欲天天天影视综合网| 丰满熟女人妻一区二区三| 欧美日韩国产电影| 亚洲h视频在线观看| 亚洲精品v天堂中文字幕 | 国产精品女人毛片| 欧美一区二区三区爽爽爽| 亚欧色一区w666天堂| 嫩草影院一区二区三区| 欧美美女bb生活片| 亚洲美女综合网| 国产亚洲一区二区在线| 成人在线直播| 欧美一区二区色| crdy在线观看欧美| 国产一区二区无遮挡| 波多野结衣的一区二区三区| 青青在线视频免费观看| 男女av一区三区二区色多| 欧美男女交配视频| 成人免费看视频| 三级黄色片在线观看| 亚洲一区二区视频在线| 波多野结衣毛片| 精品国产一区二区三区久久影院| 国产在线日本| 久久久久国产视频| 91p九色成人| 精品乱子伦一区二区三区| 日韩片欧美片| 每日在线更新av| 国产乱淫av一区二区三区| 老牛影视av老牛影视av| 一区二区三区在线高清| 无码人妻精品一区二区三区不卡| 欧美一区三区二区| 国产专区在线播放| 欧美精品久久久久久久久久| 国产一区二区色噜噜| 久久99精品久久久久久青青日本| 亚洲国产精品久久久天堂| 成年人黄色片视频| 成人激情校园春色| 中文字幕av播放| 欧美亚洲国产一区二区三区va | 国产二区视频在线播放| 国产在线播放一区二区三区| 欧洲av一区二区三区| 亚洲成人手机在线| 国产白浆在线观看| 少妇av一区二区三区| 性欧美videohd高精| 国产精品久久久久久免费观看| 999久久久免费精品国产| 国产日韩成人内射视频| 国产成人av资源| 欧美第一页在线观看| 欧美日韩mp4| 国产黄色免费在线观看| 热久久免费视频精品| 牛牛精品成人免费视频| 国产女主播自拍| 国产精品影视网| 久久久精品视频免费观看| 欧美精品日韩精品| 欧美精品日韩少妇| 国产精品偷伦视频免费观看国产 | 狠狠精品干练久久久无码中文字幕 | 欧美黄色片视频| 精品亚洲二区| 日本黄xxxxxxxxx100| 国产美女一区二区| 国产大片免费看| 日韩欧美一区在线| 七七久久电影网| 国产精品成人观看视频免费| 欧美天天视频| 亚洲天堂美女视频| 狠狠躁夜夜躁人人爽超碰91| 色视频在线观看福利| 青青在线视频一区二区三区| 蜜桃a∨噜噜一区二区三区| 丰满少妇被猛烈进入高清播放| 91香蕉视频在线| 欧美一区二区三区网站| 亚洲天堂av综合网| 国产第一精品| 国产成人三级视频| 国产99久久久国产精品潘金网站| 麻豆国产尤物av尤物在线观看| 日韩欧美另类在线| 韩国精品一区| 欧美日韩一区在线观看视频| 日韩成人一区二区三区在线观看| 成人小视频免费看| 欧美一区二区三区视频在线| 888av在线视频| 欧美不卡在线一区二区三区| 日韩激情中文字幕| 国产传媒免费在线观看| 日韩色视频在线观看| 久久男人av资源站| 日本一区二区久久精品| 久久超碰97中文字幕| 五月婷婷一区二区| 亚洲精品美女在线观看播放| 亚洲成人av观看| 国产盗摄视频在线观看| 成人h版在线观看| 中文字幕日韩国产| 欧美日韩国产999| 国产欧美一区二区精品久久久| 日本肉体xxxx裸体xxx免费| 亚洲永久免费视频| 理论在线观看| 91成人理论电影| 久久免费高清| 欧产日产国产v| 国产亚洲综合久久| 日韩影片在线观看| 欧美成人精品欧美一级乱| 亚洲日穴在线视频| 男同在线观看| 91精品国产一区二区三区动漫| 在线一区视频| 久久久久久久麻豆| 精品视频久久久| 亚洲精品18| 波多结衣在线观看| 天天色综合成人网| 好了av在线| 手机成人在线|