成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

熱門標(biāo)簽:淘寶辦理400電話是多少 網(wǎng)絡(luò)電話外呼系統(tǒng)開發(fā) 福州語(yǔ)音電銷機(jī)器人招商 滴滴急救中心地圖標(biāo)注 北海智能電銷機(jī)器人公司 艾澤拉斯地圖標(biāo)注 外呼線路隨意切換嗎 菏澤自動(dòng)電銷機(jī)器人公司 申請(qǐng)400電話收費(fèi)標(biāo)

1.寫在前面:

Docker 作為輕量級(jí)虛擬化技術(shù),擁有持續(xù)集成、版本控制、可移植性、隔離性和安全性等優(yōu)勢(shì)。本文使用Docker來部署一個(gè)vue的前端應(yīng)用,并盡可能詳盡的介紹了實(shí)現(xiàn)思路和具體步驟,以方便有類似需要的同學(xué)參考。

Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,該容器包含了應(yīng)用程序的代碼、運(yùn)行環(huán)境、依賴庫(kù)、配置文件等必需的資源,通過容器就可以實(shí)現(xiàn)方便快速并且與平臺(tái)解耦的自動(dòng)化部署方式,無論你部署時(shí)的環(huán)境如何,容器中的應(yīng)用程序都會(huì)運(yùn)行在同一種環(huán)境下。(更多詳情請(qǐng)移步docker官網(wǎng)查看docker)

默認(rèn)已經(jīng)安裝了 docker,@vue/cli

相關(guān)版本:

  • Docker version 18.09.2, build 6247962
  • vue cli --version 3.3.0
  • macOS Mojave Verison 10.14.1

運(yùn)行環(huán)境為macOS,如果與閱讀者操作系統(tǒng)之間存在差異,請(qǐng)自行調(diào)整

相關(guān)鏡像:

  • nginx:latest
  • node:latest

2.具體實(shí)現(xiàn):

  • 用 vue cli 創(chuàng)建一個(gè)vue項(xiàng)目,修改一下創(chuàng)建出來的項(xiàng)目,在頁(yè)面上寫一個(gè)前端接口請(qǐng)求,構(gòu)建一版線上資源 ,基于nginx docker鏡像構(gòu)建成一個(gè)前端工程鏡像,然后基于這個(gè)前端工程鏡像,啟動(dòng)一個(gè)容器 vuenginxcontainer。
  • 啟動(dòng)一個(gè)基于 node 鏡像的容器 nodewebserver,提供后端接口。
  • 修改 vuenginxcontainer 的 nginx 配置,使前端頁(yè)面的接口請(qǐng)求轉(zhuǎn)發(fā)到 nodewebserver 上。
  • 稍作優(yōu)化和改進(jìn)。

3 創(chuàng)建 vue 應(yīng)用

3.1 vue cli 創(chuàng)建一個(gè)vue項(xiàng)目

運(yùn)行命令

yarn serve / npm run serve

訪問 http://localhost:8081

3.2 改寫

稍微改寫一下頁(yè)面,在App.vue中 傳入HelloWorld 組件中的 msg 改為Hello Docker ; created 生命周期中加入一個(gè)接口請(qǐng)求

import axios from 'axios';

……

axios.get('/api/json', {
 params: {}
}).then(
 res => {
 console.log(res);
 }
).catch(
 error => {
  console.log(error);
 }
)

……

這時(shí)候會(huì)在頁(yè)面控制臺(tái)看到一個(gè)報(bào)錯(cuò)信息:

/api/json 接口 404,當(dāng)然此時(shí)這個(gè)接口還不存在,暫時(shí)寫到這里,一會(huì)再調(diào)這個(gè)接口。

3.3 構(gòu)建vue項(xiàng)目

運(yùn)行命令

yarn build / npm run build

此時(shí)工程根目錄下多出一個(gè) dist

文件夾

如果將該dist目錄整個(gè)傳到服務(wù)器上,部署成靜態(tài)資源站點(diǎn)就能直接訪問到該項(xiàng)目。

接下來就來構(gòu)建一個(gè)這樣的靜態(tài)資源站點(diǎn)。

4 構(gòu)建vue應(yīng)用鏡像

nginx 是一個(gè)高性能的HTTP和反向代理服務(wù)器,此處我們選用 nginx 鏡像作為基礎(chǔ)來構(gòu)建我們的vue應(yīng)用鏡像。

4.1 獲取 nginx 鏡像

docker pull nginx
  • docker 鏡像(Image)一個(gè)特殊的文件系統(tǒng)。Docker鏡像是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫(kù)、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。 鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。
  • docker 鏡像相關(guān)操作有: 搜索鏡像 docker search [REPOSITORY[:TAG]] 、拉取鏡像 docker pull [REPOSITORY[:TAG]] 、查看鏡像列表 docker image ls 、刪除鏡像: docker image rm [REPOSITORY[:TAG]] / docker rmi [REPOSITORY[:TAG]] 等等。
  • docker 鏡像名稱由REPOSITORY和TAG組成 [REPOSITORY[:TAG]] ,TAG默認(rèn)為latest

4.2 創(chuàng)建 nginx config配置文件

在項(xiàng)目根目錄下創(chuàng)建 nginx 文件夾,該文件夾下新建文件 default.conf

server {
 listen  80;
 server_name localhost;

 #charset koi8-r;
 access_log /var/log/nginx/host.access.log main;
 error_log /var/log/nginx/error.log error;

 location / {
  root /usr/share/nginx/html;
  index index.html index.htm;
 }

 #error_page 404    /404.html;

 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root /usr/share/nginx/html;
 }
}

該配置文件定義了首頁(yè)的指向?yàn)?/usr/share/nginx/html/index.html , 所以我們可以一會(huì)把構(gòu)建出來的index.html文件和相關(guān)的靜態(tài)資源放到 /usr/share/nginx/html 目錄下。

4.3 創(chuàng)建 Dockerfile 文件

FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
  • 自定義構(gòu)建鏡像的時(shí)候基于Dockerfile來構(gòu)建。
  • FROM nginx 命令的意思該鏡像是基于 nginx:latest 鏡像而構(gòu)建的。
  • COPY dist/ /usr/share/nginx/html/ 命令的意思是將項(xiàng)目根目錄下dist文件夾下的所有文件復(fù)制到鏡像中 /usr/share/nginx/html/ 目錄下。
  • COPY nginx/default.conf /etc/nginx/conf.d/default.conf 命令的意思是將nginx目錄下的default.conf 復(fù)制到 etc/nginx/conf.d/default.conf,用本地的 default.conf 配置來替換nginx鏡像里的默認(rèn)配置。

4.4 基于該Dockerfile構(gòu)建vue應(yīng)用鏡像

運(yùn)行命令(注意不要少了最后的 “.” )

docker build -t vuenginxcontainer .

-t 是給鏡像命名 . 是基于當(dāng)前目錄的Dockerfile來構(gòu)建鏡像

查看本地鏡像,運(yùn)行命令

docker image ls | grep vuenginxcontainer

到此時(shí)我們的 vue 應(yīng)用鏡像 vuenginxcontainer 已經(jīng)成功創(chuàng)建。接下來,我們基于該鏡像啟動(dòng)一個(gè) docker

容器。

4.5 啟動(dòng) vue app 容器

Docker 容器Container: 鏡像運(yùn)行時(shí)的實(shí)體。鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的類和實(shí)例一樣,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建、啟動(dòng)、停止、刪除、暫停等 。

基于 vuenginxcontainer 鏡像啟動(dòng)容器,運(yùn)行命令:

docker run \

-p 3000:80 \

-d --name vueApp \

vuenginxcontainer

docker run 基于鏡像啟動(dòng)一個(gè)容器
-p 3000:80 端口映射,將宿主的3000端口映射到容器的80端口
-d 后臺(tái)方式運(yùn)行
--name 容器名 查看 docker 進(jìn)程

docker ps

可以發(fā)現(xiàn)名為 vueApp的容器已經(jīng)運(yùn)行起來。此時(shí)訪問 http://localhost:3000

應(yīng)該就能訪問到該vue應(yīng)用:

目前為止,已經(jīng)通過 docker容器部署了一個(gè)靜態(tài)資源服務(wù),可以訪問到靜態(tài)資源文件。還有 /api/json這個(gè)接口數(shù)據(jù)沒有,接下來我們來解決一下這個(gè)問題。

5 接口服務(wù)

再部署一個(gè) node 的容器來提供接口服務(wù)

5.1 express 服務(wù)

用 node web 框架 express 來寫一個(gè)服務(wù),注冊(cè)一個(gè)返回json數(shù)據(jù)格式的路由 server.js:

'use strict';

const express = require('express');

const PORT = 8080;
const HOST = '0.0.0.0';

const app = express();
app.get('/', (req, res) => {
 res.send('Hello world\n');
});

app.get('/json', (req, res) => {
 res.json({
  code: 0,
  data :'This is message from node container'
 })
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

運(yùn)行該 express 應(yīng)用需要 node 環(huán)境,我們基于 node 鏡像來構(gòu)建一個(gè)新鏡像

5.2 獲取 node 鏡像

docker pull node

5.3 編寫 Dockerfile 將 express 應(yīng)用 docker

FROM node

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080
CMD [ "npm", "start" ]

構(gòu)建鏡像的時(shí)候 node_modules 的依賴直接通過 RUN npm install 來安裝,項(xiàng)目中創(chuàng)建一個(gè) .dockerignore 文件來忽略一些直接跳過的文件:

node_modules
npm-debug.log

5.4 構(gòu)建 nodewebserver 鏡像

運(yùn)行構(gòu)建命令:

 docker build -t nodewebserver .

5.5 啟動(dòng) nodeserver 容器

基于剛剛構(gòu)建的 nodewebserver 鏡像 啟動(dòng)一個(gè)名為 nodeserver 的容器來提供接口服務(wù)8080端口,并映射宿主的5000端口

docker run \

-p 5000:8080 \

-d --name nodeserver \

nodewebserver

查看當(dāng)前docker進(jìn)程

docker ps

可以發(fā)現(xiàn) nodeserver 的容器也正常的運(yùn)行起來。訪問以下 http://localhost:5000/json

能訪問到前面寫的json數(shù)據(jù)

到目前為止,后端接口服務(wù)也正常啟動(dòng)了。只需最后把頁(yè)面請(qǐng)求的接口轉(zhuǎn)發(fā)到后端接口服務(wù)就能調(diào)通接口。

6. 跨域轉(zhuǎn)發(fā)

想要將 vueApp 容器 上的請(qǐng)求轉(zhuǎn)發(fā)到 nodeserver 容器上。首先需要知道 nodeserver 容器的 ip 地址和端口,目前已知 nodeserver 容器內(nèi)部服務(wù)監(jiān)聽在 8080 端口,還需要知道 ip 即可。

6.1 查看 nodeserver 容器的 ip 地址:

查看容器內(nèi)部 ip 有多種方式,這里提供兩種:

進(jìn)入容器內(nèi)部查看

docker exect -it 02277acc3efc bash
cat /etc/hosts

docker inspect [ containerId ] 直接查看容器信息:

docker inspect 02277acc3efc

在其中找到 Networks 相關(guān)配置信息:

記錄下node服務(wù)容器對(duì)應(yīng)的ip,一會(huì)兒配置nginx轉(zhuǎn)發(fā)的時(shí)候會(huì)用到。

6.2 修改 nginx 配置

Nginx 配置 location 指向 node 服務(wù) default.conf (前端想要了解的Nginx,關(guān)于Nginx的配置已經(jīng) location 的具體寫法可以參考(一文弄懂Nginx的location匹配 ))

添加一條重寫規(guī)則,將 /api/{path} 轉(zhuǎn)到目標(biāo)服務(wù)的 /{path} 接口上。 在前面的nginx/default.conf文件中加入:

location /api/ {
 rewrite /api/(.*) /$1 break;
 proxy_pass http://172.17.0.2:8080;
}

修改完了之后意識(shí)到一個(gè)問題:vueApp 容器是基于 vuenginxcontainer 這個(gè)鏡像運(yùn)行的,而在一開始構(gòu)建鏡像的時(shí)候是將 nginx配置 default.conf 直接構(gòu)建進(jìn)去了。因此如果需要修改 default.conf 還得再重新構(gòu)建一個(gè)新的鏡像,再基于新鏡像來運(yùn)行新的容器。

7. 改進(jìn)

能不能每次修改配置文件后直接重啟容器就能讓新配置生效,答案當(dāng)然是有。

在構(gòu)建鏡像的時(shí)候 不把 Nginx 配置復(fù)制到鏡像中,而是直接掛載到宿主機(jī)上,每次修改配置后,直接重啟容器即可。

7.1 修改 Dockerfile 文件

把 vueclidemo 項(xiàng)目下的 Dockerfile 修改一下

FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf

COPY nginx/default.conf /etc/nginx/conf.d/default.conf 命令刪除,nginx配置都通過掛載命令掛載在宿主機(jī)上。再看 COPY dist/ /usr/share/nginx/html/ 命令,如果每次構(gòu)建的項(xiàng)目dist/下的內(nèi)容變動(dòng)都需要重新走一遍構(gòu)建新鏡像再啟動(dòng)新容器的操作,因此這條命令也可以刪除,使用掛載的方式來啟動(dòng)容器。

7.2 重新運(yùn)行vue應(yīng)用容器

直接基于nginx鏡像來啟動(dòng)容器 vuenginxnew ,運(yùn)行命令:

docker run \

-p 3000:80 \

-d --name vuenginxnew \

--mount type=bind,source=$HOME/SelfWork/docker/vueclidemo/nginx,target=/etc/nginx/conf.d \

--mount type=bind,source=$HOME/SelfWork/docker/vueclidemo/dist,target=/usr/share/nginx/html \

nginx
  • --mount type=bind,source={sourceDir},target={targetDir} 將宿主機(jī)的sourceDir 掛載到容器的 targetDir 目錄上。
  • 此處運(yùn)行的命令較長(zhǎng),如果每次重新輸入難免麻煩,我們可以將完整的命令保存到一個(gè) shell 文件 vueapp.sh 中,然后直接執(zhí)行 sh vueapp.sh 。

這樣就能每次修改了nginx配置或者 重新構(gòu)建了vue應(yīng)用的時(shí)候,只需重啟容器就能立馬生效。 此時(shí)我們?cè)僭L問 http://localhost:3000/api/json 能看到接口能正常返回,說明轉(zhuǎn)發(fā)生效了。

至此接口服務(wù)的轉(zhuǎn)發(fā)也調(diào)通了。

7.3 配置負(fù)載均衡

后端服務(wù)一般都是雙機(jī)或者多機(jī)以確保服務(wù)的穩(wěn)定性。我們可以再啟動(dòng)一個(gè)后端服務(wù)容器,并修改 nginx 的配置 來優(yōu)化資源利用率,最大化吞吐量,減少延遲,確保容錯(cuò)配置。

基于前面 4.5 節(jié)的類似操作,新啟動(dòng)一個(gè)容器,并基于 5.1 節(jié)類似的操作,查看到 新容器的 IP (172.17.0.3)

修改一下 nginx/default.conf (新增 upstream ,修改 location /api/ 中的 proxy_pass):

 upstream backend {
  server 172.17.0.2:8080;
  server 172.17.0.3:8080;
 }

 ……

 location /api/ {
  rewrite /api/(.*) /$1 break;
  proxy_pass backend;
 }

8. 寫在后面

不習(xí)慣命令行的同學(xué)可以選用Kitematic 來管理 docker 容器的狀態(tài)、數(shù)據(jù)目錄和網(wǎng)絡(luò)。所有對(duì)容量的操作都可以可視化的操作,這里就不做過多介紹了,有興趣的同學(xué)可以自行體驗(yàn)下。

9 總結(jié)

docker提供了非常強(qiáng)大的自動(dòng)化部署方式與靈活性,對(duì)多個(gè)應(yīng)用程序之間做到了解耦,提供了開發(fā)上的敏捷性、可控性以及可移植性。本文以vue項(xiàng)目為例實(shí)現(xiàn)一個(gè)前后分離項(xiàng)目使用docker部署的完整步驟,希望能給想要擁抱 docker 的同學(xué)帶來一點(diǎn)幫助。

參考資源

docker 官網(wǎng)
nginx 官網(wǎng)
docker 從入門到實(shí)踐
Kitematic user guide
前端想要了解的Nginx
一文弄懂Nginx的location匹配

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:滄州 亳州 三沙 延安 資陽(yáng) 混顯 賀州 丹東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目》,本文關(guān)鍵詞  手把手,教你,實(shí)現(xiàn),Docker,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品少妇一区二区三区在线播放| 国产精品av一区二区三区| 性感女国产在线| 精品国产午夜| 久久中文娱乐网| 一级二级三级视频| 久久久久久久久久毛片| 污污的网站在线看| 永久91嫩草亚洲精品人人| 91在线公开视频| 内射无码专区久久亚洲| 色噜噜色狠狠狠狠狠综合色一| 欧美日本一区二区三区| 99蜜月精品久久91| 精品一区二区三区在线观看l| 国产精品成人播放| 91久久国产综合久久91精品网站| 久久国产精品久久久久久小说| 国产精品xxxxx| 久久人人97超碰人人澡爱香蕉| 日韩高清a**址| 成人免费毛片日本片视频| 欧美成人伊人久久综合网| 亚洲最大中文字幕| 亚洲一区二区日韩| 日韩xxxxxxxxx| 国产肥老妇视频| 国产精品一区二区男女羞羞无遮挡| 91麻豆精品国产91| 欧美精品人人做人人爱视频| 亚洲图片你懂的| 色青青草原桃花久久综合| 91九色丨porny丨国产jk| 亚洲精品综合在线| 成人国产精品一区二区免费麻豆| 欧洲精品一区二区三区久久| 亚洲精品美女视频| 亚洲午夜精品一区 二区 三区| 天干天干啦夜天干天2019| 精品亚洲视频在线| 91国内精品久久| 亚洲麻豆一区| 国产91丝袜在线播放九色| 国产suv精品一区二区6| 成人福利网站在线观看11| av在线理伦电影| 秋霞成人午夜鲁丝一区二区三区| 香蕉视频免费看| 国产欧美日韩一区二区三区| 91精品一区二区三区久久久久久| 日本三级黄色大片| 欧美极品免费| 国产成人精品久久一区二区小说| 熟妇人妻av无码一区二区三区| 国精产品一品二品国精品69xx| 日本精品久久久久影院| 狠狠色香婷婷久久亚洲精品| 91理论片午午论夜理片久久| 亚洲av无码成人精品国产| 99视频免费观看蜜桃视频| 综合网日日天干夜夜久久| 四虎影视最新网址| 在线观看av一区二区| 黑人另类av| 免费看污黄网站| 欧美猛交免费看| 久热在线视频| 午夜影院黄色片| 97在线视频免费| 亚洲激情另类| 亚洲综合欧美激情| 欧美一级黄色影院| 久久久久久久久久影院| 久久精品视频在线免费观看| 日韩三级影院| 少妇高潮久久77777| 美女三级福利视频| 精品国产一区二区三区四区在线观看| 日本a级片在线观看| 91九色蝌蚪国产| 亚洲欧美日韩综合aⅴ视频| 91精品啪在线观看国产| 欧美成人短视频| 日韩欧美中文| 青草在线视频| 97色婷婷成人综合在线观看| 亚洲日本在线a| 亚州国产精品视频| 26uuu国产| 天堂√最新版中文在线| 国产精品久久久久久久久久精爆| 91精品在线观看视频| 国产亚洲欧美日韩一区二区| 7777精品伊人久久久大香线蕉完整版| 久久超碰亚洲| jiujiure精品视频播放| 欧美老女人性视频| 成人看片黄a免费看在线| 日韩欧美有码在线| 福利一区福利二区微拍刺激| 国产素人视频在线观看| 日韩欧美精品一区二区| 最新版天堂中文在线官网| 男女午夜视频在线观看| 国产精品素人一区二区| 免费在线观看黄色小视频| 欧美国产一区在线| 欧美三级自拍| 日本在线观看| 国产日韩精品综合网站| 麻豆视频网站在线观看| 91精品国产沙发| 蜜臀99久久精品久久久久久软件| 久草这里只有精品视频| 免费人成在线观看| 日日干天天干| 欧美国产在线视频| 欧美1区2区3| 亚洲高清影视| 色爱精品视频一区| 欧美人体做爰大胆视频| 国产精品福利一区二区三区| 日韩精品福利一区二区三区| 澳门黄色一级片| 国产女主播在线直播| 2018亚洲男人天堂| 成年人av网站| 天堂99x99es久久精品免费| 中文字幕丰满孑伦无码专区| 亚洲欧洲成人av每日更新| 91精品国产色综合久久| 97影院理论片在线播放| 午夜啪啪小视频| 免费一级特黄特色毛片久久看| 国产美女视频一区二区| 国产片一区二区三区| 天天做夜夜爱爱爱| 日韩av影片在线观看| 中文在线天堂库| 欧美日韩国产色综合一二三四| 欧美日韩在线视频一区| 亚洲欧美国产日韩综合| 久久精品主播| 日韩精品视频网| 7878成人国产在线观看| 久久国产劲爆∧v内射| 日本综合视频| 亚洲人午夜精品免费| 成年人网站免费视频| 欧美精品在线视频| 亚洲看片一区| 国产成人av电影在线| 日韩高清中文字幕一区二区| 久久久久久久综合色一本| 色戒在线免费观看| 亚洲二区三区四区| 日本少妇高潮喷水xxxxxxx| 免费av一区二区| 国产亚洲精品超碰| 九色国产蝌蚪视频| 亚洲最新中文字幕| 国产精品卡一卡二卡三| 欧美捆绑视频| 国产aⅴ精品一区二区三区色成熟| 91天堂在线| av资源在线观看免费高清| 日韩不卡中文字幕| 天天在线女人的天堂视频| 欧美亚洲一级| 亚洲欧洲成人自拍| 少妇高潮喷水在线观看| 色狼人综合干| 中文文字幕文字幕高清| 美女av在线播放| 亚洲精品久久久久久| 日本污视频在线观看| 日本aaa视频| 台湾av在线二三区观看| 久久国产夜色精品鲁鲁99| 精品国产一二三| 亚洲性视频h| 国产一级黄色大片| 农民人伦一区二区三区| 69中国xxxxxxxxx69| 六月丁香婷婷色狠狠久久| 三级影片在线观看欧美日韩一区二区| 日韩小视频在线观看专区| 一本二本三本亚洲码| 牛夜精品久久久久久久| eeuss影院www免费视频| 7777精品伊人久久久大香线蕉| 妖精一区二区三区精品视频| 成人中文字幕在线播放| 91福利视频在线| 精品国产91亚洲一区二区三区婷婷| 免费看污久久久| 亚洲色欲色欲www| 国产精品vvv| 奇米影音第四色| 成人乱色短篇合集| 亚洲一区二区三区乱码| 亚洲国产欧美一区二区三区同亚洲| 成人高清一区| 哺乳一区二区三区中文视频| 男人女人黄一级| 国产成人免费电影| 国产在线日韩精品| 国产精品扒开腿做爽爽| 欧美日韩激情在线一区二区三区| 亚洲福利小视频| 久久av色综合| 成人h动漫精品一区二区无码| 国产精品一区二区三区av| 在线精品视频一区二区| 别急慢慢来1978如如2| av成人在线看| 精品人妻少妇嫩草av无码专区| www.中文字幕av| 欧美成年人在线观看| 国产盗摄在线视频网站| 国产香蕉免费精品视频| 欧美 日韩 国产一区| 亚洲已满18点击进入久久| 国产精品入口芒果| 91精品在线一区| 亚洲毛片亚洲毛片亚洲毛片| 美女在线视频一区| 91美女视频网站| 一区二区三区四区| 国产+高潮+白浆+无码| 欧美天堂影院| 欧美成人精品二区三区99精品| 精品美女一区二区| 国产精品视频一区二区高潮| 日本www在线播放| 视频一区二区综合| 99精品一区二区三区| 国产成人啪精品视频免费网| 丁香花高清在线观看完整版| 欧美黑人乱大交ⅹxxxxx| 成 人免费视频播放| 你懂的国产精品永久在线| 永久免费av在线| 国产精品三p一区二区| 亚洲图片欧美激情| 国产精品久久久久久久久久久久久久久久久| 亚洲AV无码精品国产| 老太脱裤让老头玩ⅹxxxx| 北岛玲一区二区三区四区| 日本欧美韩国一区三区| 少妇极品熟妇人妻无码| 午夜成人鲁丝片午夜精品| 69免费视频| 欧美精品videossex88| 欧美视频在线一区| 日本在线人成| 亚洲午夜激情网站| 99精品久久99久久久久| 精品乱码一区二区三区四区| 久久亚洲一区二区三区四区五区高| www.国产在线播放| 91老师片黄在线观看| 曰本色欧美视频在线| 日韩欧美ww| 中文成人激情娱乐网| 黄网站免费在线| 蜜桃精品成人影片| 国产欧美一级| 日本在线播放一二三区| 白嫩情侣偷拍呻吟刺激| 亚洲va欧美va国产综合久久| 国产69精品99久久久久久宅男| 深田咏美在线x99av| 中文字幕欧美精品在线| 美国成人xxx| 樱空桃在线播放| xxxx性欧美| 国产jizzjizz一区二区| 久久久久久久久丰满| 亚洲欧美一区二区三区情侣bbw| 久久一二三国产| 888av在线视频| 国产精品成人在线观看| 免费一级a毛片| 日本人视频jizz页码69| 欧美家庭影院| 国产第一页浮力| 一区二区三区久久久久| 久久国产精品久久国产精品| av一级毛片| 91精品啪在线观看麻豆免费| 17videosex性欧美| 色婷婷综合在线| 韩国专线一区二三区| 国产精品美女一区二区三区四区| 91pony九色| 在线观看日韩欧美| 精品久久久久久久久久久久久久久| 日韩av福利在线观看| 午夜精品久久久久久久第一页按摩| 不卡电影一区二区三区| 天堂中文字幕| 精品99在线| 精品国产高清自在线一区二区三区| 国产精品观看在线亚洲人成网| 在线观看日韩av电影| 欧美成人黄色网址| 人妻熟妇乱又伦精品视频| 欧美三级午夜理伦三级中视频| 中文字幕av亚洲精品一部二部| 日本一道高清一区二区三区| 精品久久久久久久无码| 亚洲久色影视| 久久久一区二区三区四区| 在线观看av资源| 欧美激情综合色综合啪啪五月| 情se视频网在线观看| 成视频免费观看在线看| 久久看人人爽人人| 亚洲成人a级片| 成年免费视频| 中文字幕日韩在线观看| 中文字幕成人动漫| 久草在线中文最新视频| 六九午夜精品视频| 91精品欧美福利在线观看| 国产又粗又长又大的视频| 日本熟女一区二区|