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

如何使用Docker將node項目部署到服務器并用pm2做負載均衡?

開發 前端
本篇文章將以我們開發好的后臺管理系統為例,介紹如何使用 docker 部署我們系統的后端Node服務到服務器上。

我們的后臺管理系統基本功能大致已經完成了,接下來我們要做的就是把它部署到服務器上,讓用戶可以訪問到我們的后臺管理系統。本篇文章將以我們開發好的后臺管理系統為例,介紹如何使用 docker 部署我們系統的后端Node服務到服務器上。

docker 在前面的文章中已經簡單介紹過了,在 windows 系統上我們可以通過docker desktop來安裝和使用管理docker,非常方便。

Dockerfile

首先我們來了解一下什么是Dockerfile

簡單來說 Dockerfile 是一個文本文件,包含了一系列指令,用于自動化創建 Docker 鏡像的過程。它定義了鏡像的基礎環境、所需的依賴、應用程序的代碼以及如何運行該應用程序等等。比如一個簡單的前端項目Dockerfile如下:

# 使用官方的 Node.js 鏡像作為基礎鏡像
FROM node:14-alpine
# 設置工作目錄
WORKDIR /app
# 復制 package.json 和 package-lock.json 到工作目錄
COPY package*.json .
# 安裝項目依賴
RUN npm install
# 復制項目代碼到工作目錄
COPY . .
# 構建生產環境的應用程序
RUN npm run build
# 暴露應用程序的端口
EXPOSE3000
# 啟動應用程序
CMD ["node", "dist/main.js"]

然后我們就可以通過docker build -t <鏡像名稱>:<標簽> .將我們的項目打包成一個鏡像,就可以通過docker run [OPTIONS] <鏡像名稱>:<標簽>這個鏡像在任何地方運行我們的項目了。

docker-compose

除了Dockerfile之外,我們還可以使用docker-compose來管理我們的項目。我們的后臺管理系統的后端服務有很多依賴,比如數據庫、redis 等等,我們需要一個個拉取鏡像然后一個個的去構建啟動容器,有點麻煩。所以我們可以使用docker-compose來定義和管理多個Docker 容器,我們可以在一個docker-compose.yml文件中定義多個容器的配置,然后通過docker-compose up來啟動所有的容器。比如一個簡單的docker-compose.yml文件如下:

version: "1.0"# 指定 Docker Compose 文件的版本

services:# 定義服務部分
nest-app:# 服務名稱,表示 Nest.js 應用
    build:# 構建配置
      context:./# 構建上下文,指定 Dockerfile 所在的目錄
      dockerfile:./Dockerfile# 指定 Dockerfile 的路徑
    depends_on:# 指定依賴關系,確保在啟動此服務之前啟動依賴的服務
      -mysql-container# 依賴 MySQL 容器
      -redis-container# 依賴 Redis 容器
    ports:# 端口映射
      -3000:3000# 將宿主機的 3000 端口映射到容器的 3000 端口
    networks:# 指定服務連接的網絡
      -common-network# 連接到名為 common-network 的網絡

mysql-container:# 服務名稱,表示 MySQL 數據庫
    image:mysql# 使用官方 MySQL 鏡像
    volumes:# 數據卷配置,用于持久化數據
      -E:/mysqlData:/var/lib/mysql# 將宿主機的 E:/mysqlData 目錄掛載到容器的 /var/lib/mysql 目錄
    environment:# 環境變量配置
      MYSQL_DATABASE:fs_admin# 創建的數據庫名稱
      MYSQL_ROOT_PASSWORD:123456# MySQL 根用戶的密碼
    networks:# 指定服務連接的網絡
      -common-network# 連接到名為 common-network 的網絡
    ports:# 端口映射
      -3307:3306# 將宿主機的 3307 端口映射到容器的 3306 端口

redis-container:# 服務名稱,表示 Redis 數據庫
    image:redis# 使用官方 Redis 鏡像
    networks:# 指定服務連接的網絡
      -common-network# 連接到名為 common-network 的網絡
    ports:# 端口映射
      -6379:6379# 將宿主機的 6379 端口映射到容器的 6379 端口

networks:# 定義網絡部分
common-network:# 自定義網絡名稱
    driver:bridge# 使用橋接網絡驅動

然后我們就可以通過docker-compose up來啟動所有的容器了,之后將我們的項目部署到服務器上也可以直接執行docker-compose up就把所有的容器都啟動部署了。

編寫后端項目 Dockerfile

接下來看一下我們的后臺管理系統的后端服務的Dockerfile如何寫:

  1. 要拉取node鏡像,因為我們的后端服務是基于node的。
  2. 我們需要設置在 docker 中的工作目錄。(/app)
  3. 將項目的package.json復制到工作目錄中。
  4. 執行npm install安裝項目的依賴。
  5. 將項目的代碼復制到工作目錄中。
  6. 執行npm run build構建生產環境的應用程序。
  7. 暴露應用程序的端口。
  8. 啟動應用程序。
FROM node:18.0-alpine3.14

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

RUN npm run build
EXPOSE 3000
CMD ["npm", "run","prod"]

但是這樣做會有一個問題,就是我們把項目的代碼都復制到 docker 的工作目錄中,這樣會導致構建鏡像的大小變大,其實構建 docker 鏡像中只需要打包后的dist文件以及一些生產環境的依賴就行了,這時候我們該怎么做呢?這里就要用到Docker的多階段構建了。

我們將前面一部分構建作為第一階段命名為build-stage,第一階段構建完后我們將其distpackage.json、以及我們生產環境所需的.env.prod復制到第二階段production-stage中,然后設置工作目錄、環境變量、安裝依賴、暴露端口等即可。

FROM node:18.0-alpine3.14 as build-stage

WORKDIR /app

COPY package.json .

RUN npm config set registry https://registry.npmmirror.com/

RUN npm install

COPY . .

RUN npm run build

# production stage
FROM node:18.0-alpine3.14 as production-stage

COPY --from=build-stage /app/dist /app/dist
COPY --from=build-stage /app/package.json /app/package.json
COPY --from=build-stage /app/.env.prod /app/.env.prod

WORKDIR /app

# 環境變量
ENV NODE_ENV production

RUN npm config set registry https://registry.npmmirror.com/

RUN npm install

EXPOSE3000

CMD ["npm", "run","prod"]

這樣我們就完成了我們的后端服務的Dockerfile的編寫了。

docker-compose 配置

項目的鏡像構建完成后,我們還需要配置docker-compose.yml文件來管理我們的項目。在docker-compose.yml我們可以通過${環境變量}來獲取環境變量的值,默認取的是.env文件中的值,生產環境中我們可以通過--env-file來指定環境變量的文件,比如我們的項目的環境變量文件是.env.prod,我們就可以通過docker compose --env-file .env.prod up來啟動我們的項目。

version: "1.0"
services:
nest-app:
    build:
      context:./
      dockerfile:./Dockerfile
    depends_on:
      -mysql-container
      -redis-container
    ports:
      -3000:3000
    networks:
      -common-network
    volumes:
      -${APP_PATH}:/app/static
mysql-container:
    image:mysql
    volumes:
      -${MYSQL_DATA_PATH}:/var/lib/mysql
    environment:
      MYSQL_DATABASE:${DB_DATABASE}
      MYSQL_ROOT_PASSWORD:${DB_PASSWD}
    networks:
      -common-network
    ports:
      -3307:${DB_PORT}# 顯式映射 MySQL 端口
redis-container:
    image:redis
    volumes:
      -${REDIS_DATA_PATH}:/data
    networks:
      -common-network
    ports:
      -6379:${RD_PORT}# 顯式映射 Redis 端口
networks:
common-network:
    driver:bridge

其中volumes是配置掛載的目錄,可以將宿主機的目錄掛載到容器的目錄中,這樣容器重新啟動后,容器中的目錄中的文件不會丟失。比如mysql的數據、redis的數據、nest上傳的靜態文件等等。這些變量我們可以在.env.prod文件中配置。

# 數據庫配置 # 數據庫地址 DB_HOST=mysql-container # 數據庫端口 DB_PORT=3306 # 數據庫登錄名 DB_USER=root # 數據庫名稱 DB_DATABASE=fs_admin # 數據庫登錄密碼 DB_PASSWD=xxx # 數據庫Data保存路徑 MYSQL_DATA_PATH=/fsAdmin/mysqlData # redis配置 RD_HOST=redis-container # redis端口 RD_PORT=6379 # redis Data保存路徑 REDIS_DATA_PATH=/fsAdmin/redisData # JWT配置 JWT_SECRET=xxxx # JWT過期時間 JWT_EXP=2h # 上傳文件域名配置 FILESAVEURL=http://xxx xxx:3000/ # 上傳文件保存路徑 APP_PATH=/fsAdmin/files

我們會發現我們的數據庫 DB_HOST 和 redis 的 RD_HOST 都是容器的名稱,這是因為我們的容器是通過docker-compose.yml文件來管理的,我們將其配置在了同一個橋接網絡,所以我們可以通過容器的名稱來訪問容器的服務。

注意:如果我們的項目是開源項目,就比如我這個項目,我們是不能吧.env.prod 上傳到 git 上的,不然你的數據庫密碼等私密信息就會被別人獲取到,所以這個文件我會在服務器上進行配置。

負載均衡

我們都知道 nodejs 是單線程的,所以我們需要使用負載均衡的工具來提高我們的服務的并發能力。這里我們選擇pm2為我們的服務開啟多個進程。pm2用法其實很簡單,首先在項目中安裝pm2,當然你也可以全局安裝。然后再記住它的幾個命令即可。

這里我們使用配置文件的形式來配置pm2。我們直接使用命令pm2 init simple即可生成一個簡單的配置文件ecosystem.config.js,然后我們配置一下。

module.exports = {
  apps: [
    {
      name: "Nest_APP", //應用名稱
      log_date_format: "YYYY-MM-DD HH:mm:ss", //日志格式
      script: "dist/main.js", //啟動文件
      out_file: "./log/file.log", //日志文件
      error_file: "./log/file_error.log", //錯誤日志文件
      autorestart: true, //是否自動重啟
      instances: "max", //要啟動實例的數量即負載數量,max表示根據cpu的進程數來設置
    },
  ],
};

然后我們在package.json中修改一下npm run prod的腳本,同時添加pm2的幾個命令用于測試使用。

"scripts": {
    "prod": "pm2 start && pm2 logs",
    "pm2:delete": "pm2 delete all",
    "pm2:stop": "pm2 stop all",
    "pm2:restart": "pm2 restart all",
  },

注意啟動時加了一個命令 pm2 logs 是因為:docker 部署 pm2 啟動的程序時不能直接讓 pm2 后臺運行,因為 docker 需要一個阻塞控制臺的進程,才可以持續運行,否則會關閉,所以執行的時候加一條輸出日志的命令用于阻塞控制臺進程,docker 容器才不會關閉。

最后修改一下Dockerfile,將 pm2 配置文件也復制到容器。

圖片

此時我們就完成了 pm2 負載均衡的配置了。

本地部署

在部署服務器之前,我們先在本地部署測試一下有沒有問題。我們直接在當前項目下執行docker compose --env-file .env.prod up看一下。

圖片

可以看到本地正常啟動了,然后隨便訪問一個接口,可以看到數據正常返回。

圖片

說明我們的后端服務已經使用 docker 在本地部署成功了。注意這時候數據庫中的表是不會自動創建的,需要我們手動將開發環境的表結構同步到部署環境。

同時控制臺執行docker ps可以查看到我們的三個容器正在運行。

圖片

或者直接在docker desktop中也可以看到。

圖片

如果你構建過程出現了問題,需要修改再構建的話最好先執行docker compose down --rmi all來停止并刪除Docker Compose 項目中的所有服務,然后再執行docker compose --env-file.env.pr up來重新構建。

服務器部署

想要部署到服務器首先要有一臺自己的服務器,這里以阿里云服務器為例我購買一個便宜的輕量應用服務器。

圖片

應用鏡像選 docker,這樣就不用再在服務器上手動安裝 doker 了。系統鏡像選擇你喜歡的就行,這里我選擇第一個阿里云的 Linux 系統。

圖片

下單購買之后我們就擁有了一臺自己的服務器了。進入控制臺就能看到我們的服務器了。點擊進去就可以進行遠程連接登錄我們的服務器了。

圖片

連接成功就進入了服務器的終端界面。

圖片

接下來就是將我們的項目部署到服務器上了。我們新建一個文件夾fsAdmin來存放我們的項目mkdir fsAdmin,然后進入文件夾cd fsAdmin。用 git 將項目克隆到這個目錄下git clone 你的項目倉庫地址

圖片

clone 完成之后進入我們的后臺項目cd fs-admin/admin_nest,我們前面提到過生產環境的配置文件.env.prod是不在 git 上的,因此在服務器上我們需要手動創建這個文件,并且配置好環境變量。所以我們需要在 Linux 上安裝一個編輯器,這里我選擇的是nano,執行sudo yum install nano(根據你的 Linux 發行版本不同可能安裝方式有所差異)即可完成安裝。

安裝完成之后我們就可以使用nano .env.prod來創建或打開這個文件了,然后將生產環境的配置復制到這個文件中即可。

圖片

到這里我們的前置操作就完成了。接下來我們就可以直接使用sudo docker compose --env-file.env.prod up來啟動我們的項目了。不出意外的話應該是可以啟動成功的。 

圖片

此時我們的后端項目就已經部署到服務器了,但是此時我們還是訪問不到我們的接口的,因為我們的服務器是在阿里云的,我們需要在阿里云的控制臺中配置一下安全組。因為我們用的是輕量應用服務器,所以這里我們配置一下防火墻就行,我們需要在防火墻中添加一條規則,允許我們的服務器的 3000 端口和數據庫 3007 端口訪問。直接點擊實例 id,然后點擊防火墻將 3000 端口和 3007 端口添加進去即可。

圖片

這里解釋一下為什么是 3007 而不是 3006? 因為我們的 mysql 在 docker 中的端口是 3006,而它映射到宿主機也就是我們服務器上的端口是 3007。這是在docker-compose.yml中配置的。

圖片

此時我們就應該可以直接使用服務器公網 ip+3000端口訪問我們的接口了并且可以使用3007 來連接數據庫了。

圖片

最后我們需要將數據庫的數據表及基本的數據也同步到服務器上,因為為了安全起見,線上數據表不會像開發環境中自動創建。

我們可以使用數據庫連接工具根據線上數據庫域名端口及密碼連接到線上數據庫,然后將數據表及基礎數據導入。sql我已經放在github上的項目中了fs_admin.sql,直接導入即可。管理員賬戶及密碼為admin 123456

源碼地址:https://github.com/qddidi/fs-admin

責任編輯:龐桂玉 來源: web前端進階
相關推薦

2017-05-10 09:40:57

Ubuntupm2Nginx

2010-11-19 12:53:53

梭子魚負載均衡

2009-01-10 18:53:01

服務器ServerDNS

2015-09-06 09:53:41

DockerWeave

2022-03-26 13:31:18

項目node變量

2010-04-28 11:22:46

2018-10-26 09:52:25

Nginx服務器負載均衡

2011-11-22 21:26:59

pfSense配置Web服務器負載均衡

2010-05-05 18:44:27

服務器負載均衡

2010-05-05 18:28:16

負載均衡服務器

2013-12-13 09:52:58

VDI服務器負載均衡

2021-09-07 22:19:00

服務器Pm2磁盤

2010-03-16 16:26:58

nginxWeb緩存服務器負載均衡服務器

2009-04-20 14:00:57

2010-05-06 14:15:02

流媒體服務器負載均衡

2009-07-22 10:25:37

2010-05-10 14:02:53

服務器負載均衡

2019-12-10 10:23:57

Node.jsCluster前端

2013-09-10 10:08:41

部署GPU服務器

2011-12-31 09:49:30

MavenJava
點贊
收藏

51CTO技術棧公眾號

99久久精品费精品国产一区二区| 日韩伦理视频| 欧美性xxxx极品hd欧美风情| 青娱乐一区二区| 国产一区二区三区黄片| 国产精品国码视频| 亚洲欧美国产日韩天堂区| 久久久久国产一区| www.欧美日本韩国| 丁香激情综合五月| 国产精品av免费在线观看| 色哟哟一一国产精品| 国产精品巨作av| 精品欧美激情精品一区| 亚洲资源在线网| 手机在线不卡av| 六月婷婷色综合| 欧美激情精品久久久久久免费印度| 97人妻精品一区二区三区免| 欧洲美女精品免费观看视频| 五月天亚洲精品| 亚洲伊人婷婷| 蜜桃视频在线播放| 国产精品一品视频| 欧美在线日韩在线| 欧洲第一无人区观看| 国产欧美一区| 精品欧美一区二区在线观看| 国产一二三区av| 高端美女服务在线视频播放| 亚洲日本青草视频在线怡红院| 免费亚洲一区二区| 国产黄色一区二区| 男女男精品视频网| 热re91久久精品国99热蜜臀| 黄页网站免费观看| 91欧美国产| 尤物yw午夜国产精品视频| 久久久午夜精品福利内容| 国产精品一区二区美女视频免费看| 色综合久久88色综合天天| 日本福利视频一区| 岛国成人毛片| 国产精品美女久久久久久久久久久 | 制服丝袜亚洲网站| av五月天在线| 人人视频精品| 黑人巨大精品欧美一区二区三区| 成人免费看片'免费看| 免费观看成人高潮| 国产日韩av一区二区| 免费中文日韩| 欧美在线观看在线观看| 成人av网址在线观看| 97人人干人人| 亚洲国产www| 国产激情偷乱视频一区二区三区| 成人信息集中地欧美| 亚洲天天综合网| 麻豆高清免费国产一区| 国产精品久久久久久久天堂| 日韩不卡高清视频| 日韩一区精品视频| 国产精品91久久久| 亚洲午夜无码久久久久| 日本在线不卡一区| 国产日韩欧美成人| 一区二区三区黄| 激情综合五月天| 91亚洲va在线va天堂va国| 国产乱叫456在线| 国产综合色精品一区二区三区| 成人免费网站在线观看| 国产精品自拍电影| 国产不卡视频一区| 国产精品久久九九| 图片区 小说区 区 亚洲五月| 99久久精品免费精品国产| 狠狠色综合色区| 男人久久精品| 国产精品乱人伦中文| 免费国产成人看片在线| 欧洲在线视频| 欧美日韩国产综合视频在线观看中文| 国产午夜伦鲁鲁| 午夜欧美巨大性欧美巨大| 欧美性受xxxx黑人xyx| 亚洲精品永久视频| ccyy激情综合| 亚洲视频在线播放| 亚洲欧美精品aaaaaa片| 国语精品一区| 日本国产高清不卡| 91精品国产乱码久久久久| 国产毛片精品国产一区二区三区| 国产精品国产三级欧美二区 | 中文字幕一区二区三区手机版 | 国产美女主播在线观看| 国产福利一区二区三区在线视频| 国产在线一区二区三区欧美| 成人动漫在线播放| 一区二区三区在线视频免费观看| 日韩在线一级片| 2020国产精品小视频| 精品第一国产综合精品aⅴ| 中文字幕丰满乱子伦无码专区| 久久中文字幕av| 午夜精品久久久99热福利| 91丨九色丨海角社区| 国产精品亚洲第一区在线暖暖韩国 | 国产激情在线看| 欧美激情护士| 91麻豆精品国产91久久久资源速度| 中文视频在线观看| 欧美成人激情| 欧美影院久久久| 国产浮力第一页| 日本一区二区三区高清不卡| 欧美黄网在线观看| 日本美女一区| 精品国产91乱码一区二区三区 | 一区二区三区四区中文字幕| 国产日韩成人内射视频| 国产精品三p一区二区| xxxx欧美18另类的高清| 国产一级18片视频| 国产高清视频一区| 天天做天天爱天天高潮| 欧美在线va视频| 日韩国产精品视频| 久久久久人妻一区精品色欧美| 麻豆精品在线视频| 日本一区不卡| 日本不卡1234视频| 欧美成人video| 在线观看亚洲网站| 免费不卡在线观看| 日本一区免费在线观看| 免费h视频在线观看| 精品美女被调教视频大全网站| 91大神福利视频| 日韩精品一二三区| 欧美日韩综合精品| 亚洲校园激情春色| 亚洲精品国产美女| 日干夜干天天干| 国产成人免费网站| 青青草免费在线视频观看| 欧美电影在线观看网站| 国产午夜精品一区二区三区 | 欧美二区在线观看| 国产精品成人在线视频| 日韩成人免费电影| 日韩和欧美的一区二区| 日韩中文在线播放| 亚洲欧美中文字幕| 国产又粗又猛又黄视频| 国产欧美中文在线| 超碰在线97免费| 成人直播大秀| 成人h视频在线观看播放| 天堂中文а√在线| 337p亚洲精品色噜噜噜| 日韩欧美综合视频| 国产福利一区二区三区视频| a级黄色片免费| 免费看久久久| 日本精品va在线观看| 男人天堂亚洲二区| 欧美日韩国产一级片| av激情在线观看| 国产成人在线免费观看| 成年人午夜免费视频| 小说区图片区色综合区| 国产精品免费网站| 国产精品久久麻豆| 欧美xfplay| 国产情侣自拍av| 欧美激情在线观看视频免费| 毛片毛片毛片毛| 国产精品sm| 欧美成熟毛茸茸复古| 久久xxx视频| 久久999免费视频| 天天干天天干天天干| 在线免费观看一区| 男人操女人的视频网站| 99久久99久久久精品齐齐| 午夜激情在线观看视频| 你懂的网址国产 欧美| 精品在线观看一区二区| 少妇精品视频在线观看| 欧美激情免费看| 黄色片在线播放| 欧美一区二区三区日韩| 日本高清www免费视频| 欧美国产丝袜视频| 亚洲精品成人无码毛片| 玖玖国产精品视频| 伊人久久在线观看| 先锋影音国产精品| 91精品视频免费看| 周于希免费高清在线观看| 久久精品视频在线观看| 亚洲日本在线播放| 91精品国产91久久久久久最新毛片| 日韩手机在线观看| 国产精品麻豆视频| 特大黑人巨人吊xxxx| 国产一区二区不卡| 蜜臀久久99精品久久久酒店新书| 中文无码久久精品| 蜜桃av噜噜一区二区三| 欧美日韩午夜电影网| 国产精品久久久久久久久借妻| 男女在线观看视频| www.日本久久久久com.| 日韩精品一二| 日韩精品一区二区三区中文精品| 91丨九色丨海角社区| 红桃视频成人在线观看| 国产精品嫩草影院俄罗斯| 久久理论电影网| 在线中文字日产幕| 国产在线不卡一区| 91极品尤物在线播放国产| 亚洲精品影院在线观看| www.亚洲成人网| 天天影视欧美综合在线观看| 日本一区二区高清视频| 日韩精品免费一区二区三区竹菊| 亚洲直播在线一区| 国产成人毛片| 国产精品成av人在线视午夜片| 182在线视频观看| 欧美日本高清视频| 黄色网址视频在线观看| 中文字幕在线精品| 欧美日韩国产综合视频| 日韩精品免费看| 国产欧美综合视频| 欧美电影影音先锋| 一卡二卡在线观看| 欧美色视频在线观看| 夜夜爽妓女8888视频免费观看| 狠狠色狠色综合曰曰| 亚洲日本韩国在线| 精品久久久视频| 日韩在线观看第一页| 五月婷婷另类国产| 日本最新中文字幕| 五月天视频一区| 欧美精品一二三四区| 精品成人久久av| 天天操中文字幕| 欧美日韩国产丝袜另类| 69国产精品视频免费观看| 欧美日韩日本国产| 久久中文字幕免费| 色香蕉久久蜜桃| 波多野结衣视频在线观看| 91国产精品成人| 中日精品一色哟哟| 777午夜精品视频在线播放| 国产精品欧美激情在线| 91精品国产aⅴ一区二区| 精品人妻一区二区三区四区不卡 | 久久6免费视频| 国产一区二区伦理片| 韩国三级丰满少妇高潮| 成人午夜电影小说| 一级特黄a大片免费| 久久女同性恋中文字幕| 五月激情四射婷婷| 亚洲精品成人少妇| 国产成人一区二区三区影院在线| 欧美午夜电影在线| 国产一级精品毛片| 欧美一区在线视频| 手机看片福利在线| 中文字幕精品—区二区| caoporn97在线视频| 久久免费精品视频| 日本成人伦理电影| 91精品视频网站| 日韩电影不卡一区| 婷婷久久伊人| 欧美片第1页综合| 黄色免费观看视频网站| 久久99国产精品免费| 亚洲成人精品在线播放| 久久久久久亚洲综合| 男人在线观看视频| 午夜精品成人在线| 怡红院男人天堂| 精品国产免费久久| a视频网址在线观看| 欧美激情网友自拍| 国产精品成人国产| 国产伦精品一区二区三区照片| 国内精品伊人久久久| 精品人妻大屁股白浆无码| 视频一区视频二区中文| 日批视频免费看| 国产精品欧美精品| 国产精品成人av久久| 欧美三级韩国三级日本一级| 欧美在线 | 亚洲| yellow中文字幕久久| 亚洲一级少妇| 风间由美久久久| 色偷偷综合网| 丝袜老师办公室里做好紧好爽| 激情久久五月天| 最近中文字幕免费| 亚洲一区二区成人在线观看| 中文字幕乱码视频| 精品无人国产偷自产在线| 欧洲在线视频| 91久久中文字幕| 欧美日韩国产传媒| 色综合久久久久无码专区| 国产精品香蕉一区二区三区| 精品一区二区三孕妇视频| 欧美日韩国产专区| 日韩中文字幕影院| 麻豆成人在线看| 少妇精品视频在线观看| 日韩av电影免费播放| av成人黄色| 国产乱淫av麻豆国产免费| 亚洲欧美日韩人成在线播放| 亚洲免费视频二区| 久久综合欧美| 一区一区视频| 日韩国产成人精品| 37p粉嫩大胆色噜噜噜| 午夜日韩在线观看| 亚洲国产成人精品一区二区三区| 久久久黄色av| 国产精品日韩精品在线播放 | 视频一区二区在线播放| 欧美大片在线免费观看| www久久久| 中文字幕不卡每日更新1区2区| 日本麻豆一区二区三区视频| 婷婷色一区二区三区 | 在线观看免费视频a| 一夜七次郎国产精品亚洲| 厕沟全景美女厕沟精品| 蜜桃视频在线观看成人| 久久成人免费| 免费观看a级片| 欧美色综合网站| 亚洲搞黄视频| 成人欧美一区二区三区在线湿哒哒| 先锋资源久久| 精品人妻一区二区乱码| 洋洋av久久久久久久一区| 风流老熟女一区二区三区| 久久久久久久久久久人体| 国产一区二区三区不卡av| 久久这里只有精品23| 91美女在线视频| 国产精品第6页| 日韩中文字幕在线看| 久久综合给合| 成品人视频ww入口| 99久久精品情趣| 好吊色在线视频| 日韩中文字幕免费| 视频在线亚洲| 91av资源网| 欧美国产一区视频在线观看| 国产又粗又长视频| 久久久久久久国产精品| 日本一区福利在线| 在线观看亚洲色图| 亚洲精品视频免费看| 天天操天天射天天舔| 国产精品成人aaaaa网站| 久久久久久久久久久久久久久久久久 | 欧美久久久久久久久| 午夜伦理在线视频| 美女被啪啪一区二区| 奇米精品一区二区三区在线观看一| 永久免费看片直接| 亚洲福利在线看| 色成人免费网站| a级片一区二区| 久久综合色婷婷| 国产麻豆一精品一男同| 久久久噜噜噜久久中文字免| 国产日产一区 | 99精品视频在线免费观看| 国产一级片一区二区| 欧美黑人巨大xxx极品| 激情婷婷综合| 图片区偷拍区小说区| 欧美色手机在线观看|