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

一篇文章讓你搞懂 Nginx 的負載均衡

開發 前端
前面我們講了 Nginx 的 11 個階段以及各個模塊的用法,現在終于到了最重要也是最常用的一部分了,那就是反向代理和負載均衡,今天這篇文章介紹了負載均衡的原理以及對應的四種負載均衡算法,當然還有對應的指令及實戰,歡迎品嘗。

前面我們講了 Nginx 的 11 個階段以及各個模塊的用法,現在終于到了最重要也是最常用的一部分了,那就是反向代理和負載均衡,今天這篇文章介紹了負載均衡的原理以及對應的四種負載均衡算法,當然還有對應的指令及實戰,歡迎品嘗。

負載均衡

所謂負載均衡,就是 Nginx 把請求均勻的分攤給上游的應用服務器,這樣即使某一個服務器宕機也不會影響請求的處理,或者當應用服務器扛不住了,可以隨時進行擴容。

 

一篇文章讓你搞懂 Nginx 的負載均衡

Nginx 在 AKF 可擴展立方體上的應用

 

一篇文章讓你搞懂 Nginx 的負載均衡
  • 在 x 軸上,可以通過橫向擴展應用服務器集群,Nginx 基于 Round-Robin 或者 Least-Connected 算法分發請求。但是橫向擴展并不能解決所有問題,當數據量大的情況下,無論擴展多少臺服務,單臺服務器數據量依然很大。
  • 在 y 軸上,可以基于 URL 進行不同功能的分發。需要對 Nginx 基于 URL 進行 location 的配置,成本較高。
  • 在 z 軸上可以基于用戶信息進行擴展。例如將用戶 IP 地址或者其他信息映射到某個特定的服務或者集群上去。

這就是 Nginx 的負載均衡功能,它的主要目的就是為了增強服務的處理能力和容災能力。

反向代理

反向代理和負載均衡在某種程度上是密不可分的。

Nginx 支持多種協議的反向代理。四層的反向代理比較簡單,無論是 UDP 還是 TCP 的流量過來,轉發到上游的依然是 UDP 或 TCP 的流量。

而到了應用層時,就不太相同了,因為 HTTP 的 Header 中包含了大量的業務信息,需要根據 HTTP 的頭部轉換成不同的協議。

 

一篇文章讓你搞懂 Nginx 的負載均衡

反向代理與緩存

緩存這個問題分為兩類,一類是時間緩存,一類是空間緩存。

  • 時間緩存是指,當用戶請求一個頁面的時候,Nginx 發現沒有緩存,就會到后端服務器去取,在返回給用戶響應的同時還會緩存一份,這樣當下一個用戶去請求的時候就會直接用緩存作為響應而不會再去請求上游的服務器。
  • 空間緩存這種用的比較少,主要是指當用戶發來請求的時候,Nginx 可以提前去上游服務器獲取一些響應的內容,這個后面可以看到是怎么用的。

 

一篇文章讓你搞懂 Nginx 的負載均衡

upstream 與 server 指令

指令name 表示負載均衡集群的名字,而 {} 內指定了一系列的服務器server 后跟服務器地址,地址后還可以加一些參數 parameters

  1. Syntax: upstream name { ... } 
  2. Default: — 
  3. Context: http 
  4.  
  5. Syntax: server address [parameters]; 
  6. Default: — 
  7. Context: upstream 
  • 功能:指定一組上游服務器地址,地址可以是域名、IP 地址或者 Unix Socket 地址??梢栽谟蛎蛘?IP 地址后加端口,如果不加端口,那么默認使用 80 端口。
  • 通用參數:server 后可以添加的參數backup:指定當前 server 為備份服務,僅當非備份 server 不可用時,請求才會轉發到該 server表示某臺服務已經下線,不再服務

負載均衡算法

加權 Round-Robin 負載均衡算法

Round-Robin(rr) 負載均衡算法發給上游服務器的請求是輪詢發送的,相當于所有上游服務器根據順序依次處理發來的請求。

有些情況下上游服務器性能不同,比如 4C8G 和 8C16G 的服務器都有,那么這時候就可以對服務器設置一些權重,讓性能好的承擔更多的請求。

功能在加權輪詢的方式訪問 server 指令指定的上游服務集成在 Nginx 的 upstream 框架中,無法移除

指令weight:服務訪問的權重,默認是 1max_conns:server 的最大并發連接數,僅作用于單 worker 進程。默認是 0,表示沒有限制max_fails:在 fail_timeout 時間段內,最大的失敗次數。當達到最大失敗時,會在 fail_timeout 秒內這臺 server 不允許再次被選擇fail_timeout:單位是秒,默認 10 秒,可以指定一段時間內最大失敗次數 max_fails 以及到達 max_fails 之后該 server 不能訪問的時間

對上游服務使用 keepalive 長連接

Nginx 與上游服務一般是在內網中的,所以開啟 keepalive 后效果后更明顯。

  • 功能:通過復用連接,降低 Nginx 與上游服務器建立、關閉連接的消耗,提升吞吐量的同時降低時延
  • 模塊: ngx_http_upstream_keepalive_module 默認編譯進 Nginx,通過 --without-http_upstream_keepalive_module 移除

對上游服務器的 HTTP 頭部設定

 

  1. Syntax: keepalive connections; 
  2. Default: — 
  3. Context: upstream 
  4. # 1.15.3 非穩定版本新增命令 
  5. Syntax: keepalive_requests number; 
  6. Default: keepalive_requests 100;  
  7. Context: upstream 
  8. Syntax: keepalive_timeout timeout; 
  9. Default: keepalive_timeout 60s;  
  10. Context: upstream 
  11.  
  12. keepalive connections; 

指定上游服務域名解析的 resolver 指令

當使用域名訪問上游服務時,可以指定一個 DNS 解析的地址,還可以設置超時等,這個時候就要用到 resolver 指令。

  1. Syntax: resolver address ... [valid=time] [ipv6=on|off]; 
  2. Default: — 
  3. Context: http, server, location 
  4.  
  5. Syntax: resolver_timeout time
  6. Default: resolver_timeout 30s;  
  7. Context: http, server, location 

實戰

下面我起了兩個 Nginx 的進程,一個作為上游服務器,監聽 8011 和 8012 端口,另一個作為反向代理向上游服務器發請求。

上游服務器的配置如下,當請求是到達 8011 端口就返回 8011 server response. ,當請求到達 8012 端口返回 8012 server response. 。

  1. server { 
  2.     listen 8011; 
  3.     default_type text/plain; 
  4.     return 200 '8011 server response.\n'
  5.  
  6. server { 
  7.     listen 8012; 
  8.     default_type text/plain; 
  9.     # client_body_in_single_buffer on
  10.     return 200 '8012 server response.\n'

作為反向代理的 Nginx 服務器配置是這個樣子的:

這里面 8011 端口和 8012 端口的區別在于 8011 端口設置了權重和對應的參數。

  1. upstream rrups { 
  2.     server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5; 
  3.     server 127.0.0.1:8012; 
  4.     keepalive 32; 
  5.  
  6. server { 
  7.     server_name rrups.ziyang.com; 
  8.     error_log myerror.log info; 
  9.  
  10.     location /{ 
  11.         proxy_pass http://rrups; 
  12.         proxy_http_version 1.1; 
  13.         proxy_set_header Connection ""
  14.     } 

兩個 Nginx 都配置好之后,來測試一下:

  1. ➜  nginx curl rrups.ziyang.com 
  2. 8011 server response. 
  3. ➜  nginx curl rrups.ziyang.com 
  4. 8011 server response. 
  5. ➜  nginx curl rrups.ziyang.com 
  6. 8012 server response. 

由于 8011 端口的權重設置的是 2,所以根據 rr 算法,每次都是先兩個連接負載到 8011 端口上然后是 8012 端口。

這一節講了 rr 負載均衡算法,rr 算法是所有負載均衡算法的基礎,在其他負載均衡算法失效的情況下,Nginx 也會使用 rr 算法進行負載均衡。

負載均衡哈希算法,ip_hash 與 hash 模塊

rr 輪詢算法沒有辦法保證請求由某一臺指定的服務器去處理,只能輪詢處理請求,在 AKF 立方體中只能在 x 軸方向上進行水平擴展。如果基于 z 軸擴展,就可以采用哈希算法保證某一類請求只由特定的服務器處理。

  • 功能:以客戶端的 IP 地址作為 hash 算法的關鍵字,映射到特定的上游服務器中對 IPv4 地址使用前 3 個字節作為關鍵字,對 IPv6 則使用完整地址可以使用 rr 算法的參數可以基于 realip 模塊修改用于執行算法的 IP 地址
  • 模塊: ngx_http_upstream_ip_hash_module ,通過 --without-http_upstream_ip_hash_module 禁用模塊

指令的話比較簡單,就是 ip_hash 出現在 upstream 上下文中。

  1. Syntax: ip_hash; 
  2. Default: — 
  3. Context: upstream 

這里面不得不提到的一個模塊就是 realip 模塊,哈希算法是根據 remote_addr 這個變量的值來進行哈希的,這個變量已經出現了好多次了,可見是多么常用的一個變量。不熟悉的還是到前面Nginx 的 11 個階段 重新復習一下。

還有另外一個模塊 upstream_hash 模塊,這個模塊可以基于任意的關鍵字實現 hash 算法的復雜均衡。

基于任意關鍵字實現 hash 算法的負載均衡:upstream_hash 模塊

  • 功能:通過指定關鍵字作為 hash key,基于 hash 算法映射到特定的上游服務器中關鍵字可以含有變量、字符串可以使用 rr 算法的參數
  • 模塊: ngx_http_upstream_hash_module ,通過 --without-http_upstream_ip_hash_module 禁用模塊

指令的話就是 hash 指令,后面可以跟關鍵字作為 key。

  1. Syntax: hash key [consistent]; 
  2. Default: — 
  3. Context: upstream 

實戰

配置文件如下所示:

  1. log_format  varups  '$upstream_addr $upstream_connect_time $upstream_header_time $upstream_response_time ' 
  2.                         '$upstream_response_length $upstream_bytes_received ' 
  3.                         '$upstream_status $upstream_http_server $upstream_cache_status'
  4.  
  5. upstream iphashups { 
  6.     ip_hash; 
  7.     #hash user_$arg_username; 
  8.     server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5; 
  9.     server 127.0.0.1:8012 weight=1; 
  10.  
  11. server { 
  12.     set_real_ip_from  127.0.0.1; 
  13.     real_ip_recursive on
  14.     real_ip_header X-Forwarded-For
  15.     server_name iphash.ziyang.com; 
  16.     listen 80; 
  17.     error_log myerror.log info; 
  18.     access_log logs/upstream_access.log varups; 
  19.  
  20.     location /{ 
  21.         proxy_pass http://iphashups; 
  22.         proxy_http_version 1.1; 
  23.         proxy_set_header Connection ""
  24.     } 

實際驗證一下,會發現不同的 ip 地址實際上是會被不同的上游服務器處理的,如果是同一個 ip 地址,那么只會被一個上游服務器處理。

  1. ➜  nginx curl -H 'X-Forwarded-For: 10.200.20.20' iphash.ziyang.com 
  2. 8012 server response. 
  3. ➜  nginx curl -H 'X-Forwarded-For: 1.200.20.20' iphash.ziyang.com 
  4. 8011 server response. 

基于 IP 或者基于自定義 key 的 hash 算法有一個嚴重的問題,那就是當上游服務器掛掉的話,Nginx 依然會向這臺服務器發請求,這是因為,如果負載的不同的服務器上去,可能會得到異常的響應,同時還可能導致大量的路由變更。下面的一致性哈希可以解決這個問題。

一致性哈希算法:hash 模塊

剛才說了基于 IP 的哈希算法存在一個問題,那就是當有一個上游服務器宕機或者擴容的時候,會引發大量的路由變更,進而引發連鎖反應,導致大量緩存失效等問題。那么為什么會造成這種情況呢?

假設我們基于 key 來做 hash,現在有 5 臺上游服務器,如果基于最簡單的 hash 算法對 key 取模,會將 key 和 server 一一對應起來。

 

一篇文章讓你搞懂 Nginx 的負載均衡

當有一臺服務器宕機的時候,就需要重新對 key 進行 hash,最后會發現所有的對應關系全都失效了,從而會引發緩存大范圍失效。

 

一篇文章讓你搞懂 Nginx 的負載均衡

而一致性 hash 算法則可以解決這個問題。

 

一篇文章讓你搞懂 Nginx 的負載均衡

一致性哈希算法的原理是,將一個環分成了 2^32 個區間范圍,四個節點將這個環劃分成為了四個區間,每個區間的請求都由對應的節點去處理。來看看當擴容的時候會發生什么。

 

一篇文章讓你搞懂 Nginx 的負載均衡

假設這時候發現 node4 負載過高,因此決定再添加一個節點進去分擔壓力,那么影響的也只是這個節點之后的請求,可能會緩存失效,而其他的三個節點是不會有任何影響的。

這就是一致性 hash 算法的原理,一致性 hash 算法使用也很簡單,只需要將上一節指令中的參數打開即可:

  1. Syntax: hash key [consistent]; 
  2. Default: — 
  3. Context: upstream 

這里只需要指明 consistent 參數即可。

最少連接數算法

再來看一個最少連接數算法。這個算法顧名思義,它會優先選擇連接最少的上游服務器,是由 upstream_least_conn 模塊提供的。

  • 功能:從所有上游服務器中,找出當前并發連接數最少的一個,將請求轉發到它如果出現多個最少連接服務器的連接數都是一樣的,使用 rr 算法
  • 模塊: ngx_http_upstream_least_conn_module ,通過 --without-http_upstream_ip_hash_module 禁用模塊

指令的用法也很簡單,直接在 upstream 模塊中開啟 least_conn 指令即可。

  1. Syntax: least_conn; 
  2. Default: — 
  3. Context: upstream 

負載均衡策略對所有 worker 進程生效:upstream_zone 模塊

上面說的所有的負載均衡算法對于 worker 進程來說都是獨立的,每個 worker 進程之間并不互通,這樣在很多時候并不是我們期望的。

我們期望的應該是負載均衡算法對所有的 worker 進程生效。

  • 功能:分配出共享內存,將其他 upstream 模塊定義的負載均衡策略數據、運行時每個上游服務器的狀態數據存放在共享內存上,以對所 Nginx worker 進程生效
  • 模塊: ngx_http_upstream_zone_module ,通過 --without-http_upstream_ip_hash_module 禁用模塊

一個指令,指定 zone 的名字以及對應的大?。?/p>

  1. Syntax: zone name [size]; 
  2. Default: — 
  3. Context: upstream 

除此之外,各個負載均衡模塊之間是要遵循一定的順序的:

  1. ngx_module_t *ngx_modules[] = { 
  2.     … … 
  3.     &ngx_http_upstream_hash_module, 
  4.     &ngx_http_upstream_ip_hash_module, 
  5.     &ngx_http_upstream_least_conn_module, 
  6.     &ngx_http_upstream_random_module, 
  7.     &ngx_http_upstream_keepalive_module, 
  8.     &ngx_http_upstream_zone_module, 
  9.     … … 
  10. }; 

注意,這個模塊的順序是從上到下執行的,而不是我們前面過濾模塊的從下到上。

可以看到,zone 模塊在最后,也就是說,上面各個算法定義的參數和配置,最終 zone 模塊會把這些配置放到共享內存里面生效。

這一節介紹了負載均衡的原理以及四種負載均衡算法,也可以說是三種,就是輪詢、哈希、最少連接數算法。每一種算法都有各自的應用場景,rr 算法是最基礎的負載均衡算法,在某些情況下其他算法失效的時候,會退化為 rr 算法。

upstream 提供的變量

先來介紹一組不含緩存的變量。

  • upstream_addr上游服務器的 IP 地址,格式為可讀的字符串,例如 127.0.0.1:8012
  • upstream_connect_time與上游服務建立連接消耗的時間,單位為秒,精確到毫秒
  • upstream_header_time:這個接收時間是會影響到 Nginx 的性能的,因為只有接收了 Header 才能決定下一步如何處理接收上游服務發回響應中 HTTP 頭部所消耗的時間,單位為秒,精確到毫秒
  • upstream_response_time接收完整的上游服務響應所消耗的時間,單位為秒,精確到毫秒
  • upstream_http_頭部從上游服務返回的響應頭部的值
  • upstream_bytes_received從上游服務接收到的響應長度,單位為字節
  • upstream_response_length從上游服務返回的響應包體長度,單位為字節
  • upstream_status上游服務返回的 HTTP 響應狀態碼。如果未連接上,該變量值為 502
  • upstream_cookie_名稱從上游服務發回的響應頭 Set-Cookie 中取出的 cookie 值
  • upstream_trailer_名稱從上游服務的響應尾部取到的值

來看一下剛才的實戰中我們的例子。

在剛才的負載均衡實戰中有一條日志的配置:

  1. log_format  varups  '$upstream_addr $upstream_connect_time $upstream_header_time $upstream_response_time ' 
  2.                         '$upstream_response_length $upstream_bytes_received ' 
  3.                         '$upstream_status $upstream_http_server $upstream_cache_status'

這條配置用到了我們上面提到的很多變量,對應輸出的實際日志長這個樣子:

  1. 127.0.0.1:8012 0.001 0.001 0.001 22 170 200 nginx/1.17.8 - 

大家可以對照日志格式看下分別代表什么意思,這里我就不細說了。

好了,今天這篇文章跟大家介紹了什么是負載均衡,Nginx 主要是通過 upstream 模塊來提供對應的功能的,又介紹了負載均衡的四種算法,最后介紹了 upstream 中提供的變量。下一節課我們來說一說 Nginx 的反向代理。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2020-07-28 17:27:53

Nginx 負載均衡模塊

2023-11-01 15:52:35

2020-06-03 11:06:26

DNS域名緩存

2019-09-11 08:52:24

MVCMVPMVVM

2022-08-09 08:00:55

AWS安全API

2020-07-08 13:38:10

NginxApache服務器

2019-04-22 10:08:52

NginxApacheWEB服務器

2021-08-02 10:01:09

Iterator接口Java項目開發

2021-05-18 09:00:28

Pythonclass

2024-05-10 08:19:59

arthasjava字節碼

2021-05-27 09:01:14

Python文件讀寫Python基礎

2021-04-07 13:28:21

函數程序員異步

2023-07-28 07:14:13

2019-10-17 19:15:22

jQueryJavaScript前端

2024-10-23 16:02:40

JavaScriptPromiserejection

2017-07-20 16:55:56

Android事件響應View源碼分析

2021-08-30 10:01:01

Map接口HashMap

2021-08-17 09:55:05

JavaScript MicrotaskPromise

2021-03-08 09:15:46

日志Filebeat運維

2018-12-26 10:14:56

綜合布線系統數據
點贊
收藏

51CTO技術棧公眾號

国产极品人妖在线观看| 91中文字幕在线播放| 亚洲一区二区三区免费| 亚洲一区二区免费视频| 黄色99视频| 日韩欧美一级大片| 午夜久久99| 日韩精品视频中文在线观看| 99热手机在线| 金瓶狂野欧美性猛交xxxx| 久久综合成人精品亚洲另类欧美 | 日韩一区av| 中文欧美日韩| 在线播放日韩欧美| 欧美一级片在线免费观看| 北岛玲heyzo一区二区| 中文字幕一区二区三区av| 国产精品视频福利| 一二三四区视频| 亚洲毛片视频| 精品国产一区二区三区在线观看| 男人的天堂影院| 国产a亚洲精品| 精品久久久久久久久久久久久 | 欧美丝袜一区二区三区| 一区二区免费在线观看| 视频一区二区在线播放| 国产美女主播视频一区| 国产精品99一区| 懂色av.com| 亚洲精品网址| 中文欧美日本在线资源| 风间由美一二三区av片| 日韩成人久久| 3atv在线一区二区三区| av网址在线观看免费| 成年男女免费视频网站不卡| 亚洲欧美偷拍卡通变态| 天天综合狠狠精品| 欧美香蕉爽爽人人爽| 成人国产精品免费观看动漫| 91精品视频播放| 中文字幕一区二区免费| 另类av一区二区| 91爱爱小视频k| 国产精品30p| 欧美三级网页| 欧美激情按摩在线| 欧美精品色哟哟| 正在播放日韩欧美一页| 久久在线精品视频| 潘金莲一级黄色片| 99久久精品费精品国产风间由美| 国产亚洲综合久久| av电影网站在线观看| 亚洲电影男人天堂| 亚洲免费福利视频| 美女久久久久久久久久| 动漫视频在线一区| 精品99一区二区三区| 性高潮免费视频| 亚洲专区**| 欧美成人aa大片| 伦理片一区二区| 久久99精品久久久久久欧洲站| 精品国产免费人成电影在线观看四季| 日本成人在线免费| 99这里只有精品视频| 精品福利av导航| 波多野结衣一二三区| 欧美一级一片| 亚洲欧洲xxxx| 女人黄色一级片| 午夜av一区| 欧美国产日产韩国视频| 久草视频手机在线观看| 在线欧美亚洲| 日本伊人精品一区二区三区介绍| 99久久久久久久久| 日本视频一区二区| 91免费人成网站在线观看18| va视频在线观看| 成人h动漫精品| 激情五月综合色婷婷一区二区| 天天干,夜夜爽| 国产欧美中文在线| 最近中文字幕免费mv| 三级资源在线| 欧美日韩国产在线| 无码少妇一区二区三区芒果| aaaa欧美| 亚洲成人精品久久久| 九色porny自拍视频| 日韩精品第一区| 色综合五月天导航| 亚洲天堂男人av| 精品一区二区日韩| 国产精品一区二区免费| 二区三区在线播放| 亚洲女与黑人做爰| 北条麻妃69av| 天堂综合在线播放| 日韩av在线天堂网| www.97视频| 国产欧美亚洲一区| 国产一区二区在线免费视频| 亚洲国产999| 国产色婷婷亚洲99精品小说| 成人手机在线播放| 日韩欧美一区二区三区在线观看 | 欧美精品精品精品精品免费| 不卡av电影在线| 国产福利精品一区二区| 欧洲一区二区在线观看| 好吊日视频在线观看| 欧美性猛交xxxx富婆| 一级黄色片国产| 久操成人av| 欧美大片欧美激情性色a∨久久| 六月丁香激情综合| 国产乱码精品一区二区三区av | 成人啪啪18免费游戏链接| 国产一区二区欧美| 久久久久久久国产精品| 在线观看免费视频一区| 91丨九色丨蝌蚪丨老版| 精品一区二区成人免费视频| 欧亚av在线| 精品国产一区二区三区忘忧草 | 亚洲日本在线播放| 亚洲六月丁香色婷婷综合久久| 97在线免费公开视频| 国产精品久av福利在线观看| 久久韩剧网电视剧| 91视频在线视频| 99国产精品国产精品久久| 日韩中文字幕亚洲精品欧美| 国产成人精选| 中文字幕亚洲无线码a| 天天干天天干天天操| 成人免费毛片嘿嘿连载视频| 最近免费观看高清韩国日本大全| 麻豆久久久久| 中文字幕少妇一区二区三区| 亚洲图片在线视频| 91在线高清观看| aa视频在线播放| 国产极品模特精品一二| 欧美日本亚洲视频| a级片在线免费看| 国产精品久久久久久久久免费桃花 | 国产成人高清激情视频在线观看| 日韩一区二区三区在线观看视频| 亚洲精品久久久久久国产精华液 | 国产一区二区三区香蕉| 亚洲欧美日韩精品综合在线观看 | 成人做爽爽免费视频| 天堂资源在线中文| 欧美日韩精品一区二区| 欧美性生交大片| 免费人成精品欧美精品| 亚洲国产精品综合| 日韩av懂色| 久久天天躁日日躁| 精品久久久久久亚洲综合网站| 亚洲欧美激情一区二区| 日本少妇xxxx软件| 亚洲专区免费| 日本一区二区三区视频在线观看 | 国产原创在线观看| 日韩欧美一区二区视频| 国产亚洲成人av| 99re成人精品视频| 成熟老妇女视频| 日本不卡二三区| 亚洲专区在线视频| аⅴ资源天堂资源库在线| 亚洲精品自在久久| 在线观看国产黄| 亚洲一级二级在线| 欧美老熟妇乱大交xxxxx| 毛片一区二区三区| 大地资源网在线观看免费官网| 超碰成人免费| 国产精品成人国产乱一区| 日本高清在线观看wwwww色| 精品三级av在线| www.日韩一区| 亚洲一区二区在线播放相泽| 国产激情第一页| 日本成人超碰在线观看| 国产精品亚洲天堂| 欧美黑人巨大videos精品| 日本成人免费在线| 精品国产99久久久久久| 精品国产青草久久久久福利| 日韩一级在线视频| 亚洲色图.com| 亚欧洲乱码视频| 国产精品一级黄| 无码播放一区二区三区| 色综合五月天| 久久艳妇乳肉豪妇荡乳av| 国产极品嫩模在线观看91精品| 久久视频免费观看| 香港一级纯黄大片| 日韩视频123| 国产婷婷色一区二区在线观看 | 日韩免费视频线观看| 中文字幕精品无码一区二区| 亚洲国产精品黑人久久久| 日韩大尺度视频| 国产欧美日本| 色乱码一区二区三区熟女| 秋霞综合在线视频| 91夜夜揉人人捏人人添红杏| 3d欧美精品动漫xxxx无尽| 欧美大片在线看免费观看| 国产在线资源| 亚洲风情亚aⅴ在线发布| 国产又大又粗又长| 一本到高清视频免费精品| 精品爆乳一区二区三区无码av| 26uuu亚洲综合色| av漫画在线观看| 精久久久久久久久久久| 北条麻妃在线观看| 欧美国产精品| 亚洲精品在线视频观看| 日韩欧美美女在线观看| 国产欧美日韩丝袜精品一区| 中文日产幕无线码一区二区| 久热精品在线视频| 成人av电影观看| 亚洲欧美日韩另类| 天天干天天爱天天操| 欧美一卡2卡三卡4卡5免费| 中文字幕一区二区三区波野结| 色欧美日韩亚洲| 一级aaa毛片| 一区二区高清视频在线观看| 色欲av无码一区二区三区| 99久久精品一区| 欧美一级片在线免费观看| 国产主播一区二区三区| 黄色片久久久久| 午夜在线观看免费一区| 久艹视频在线免费观看| 欧美一区精品| 亚洲午夜精品一区二区| 精品视频亚洲| 水蜜桃一区二区| 成人网18免费网站| 亚洲欧美久久234| 精品美女在线视频| 欧美性大战久久久久| 国产欧美日韩精品一区二区免费| 久久精品国产精品国产精品污| 成人台湾亚洲精品一区二区| 亚洲自拍偷拍区| 成人性生交大片免费看96| 超碰97在线人人| 综合视频一区| 91九色露脸| 久久综合五月婷婷| 久久影院理伦片| 精品产国自在拍| 一区二区三区视频| 一区二区三区国产精华| 成人一区二区av| 一区二区三区国产在线| www.亚洲天堂网| 美女网站一区二区| 污污的视频免费观看| 粉嫩av亚洲一区二区图片| 久久久久久久人妻无码中文字幕爆| 成人精品在线视频观看| 精品国产一区在线| 久久亚区不卡日本| 黄免费在线观看| 亚洲狠狠丁香婷婷综合久久久| 免费毛片在线播放免费| 亚洲va欧美va国产va天堂影院| 日韩精品在线免费视频| 在线视频一区二区免费| 一级片在线免费观看视频| 91麻豆精品国产91久久久资源速度 | 第一sis亚洲原创| 黄色高清视频网站| 日韩午夜黄色| 国产理论在线播放| 国产精品一二三四| 麻豆精品国产传媒av| 国产亚洲精品aa| 亚洲成人生活片| 午夜久久久久久| 国产精品综合在线| 日韩av在线免费| 老司机在线看片网av| 欧美一级大片在线免费观看| 巨大黑人极品videos精品| 国产欧美一区二区在线播放| 日韩精品中文字幕第1页| 国产在线视频在线| 日本欧美一区二区三区乱码 | 成人黄页毛片网站| 亚洲欧美va天堂人熟伦| 国产精品灌醉下药二区| 国产成人无码精品久久久久| 欧美综合一区二区| 欧美一级淫片免费视频魅影视频| 中文字幕免费精品一区高清| 午夜小视频在线观看| 日本在线精品视频| 久久精品亚洲成在人线av网址| 一区二区精品在线| 久久久久久久欧美精品| 尤物网站在线观看| 中文字幕人成不卡一区| 4438国产精品一区二区| 亚洲成人av在线播放| 午夜在线视频| 欧美一级高清免费| 精品网站999| 一区二区三区四区国产| 丝袜美腿亚洲综合| 亚洲综合伊人久久| 国产精品蜜臀在线观看| 久久久久久久久久久久久av| 欧美成人一级视频| 国产在线激情| 国产精品视频26uuu| 超碰97久久| 国产精品国产对白熟妇| 国产专区欧美精品| 日韩在线免费观看av| 图片区日韩欧美亚洲| 精品人妻无码一区二区三区蜜桃一| 日韩av一区二区在线| 黄色在线看片| 国产精品久久久久久久久免费| 女人av一区| 大j8黑人w巨大888a片| 国产aⅴ综合色| 久久久久久久久久久久久久久久久 | 日本一区二区三区www| 玖玖精品视频| 午夜理伦三级做爰电影| 亚洲成人动漫在线观看| www.av在线.com| 色综合久久久久久中文网| 欧美jizz18| 亚洲成人动漫在线| 国产在线播放一区| www.xx日本| 欧美一区二区在线不卡| 黄网址在线观看| 成人黄在线观看| 五月综合激情| 香蕉视频在线观看黄| 亚洲二区在线视频| 欧美自拍偷拍第一页| 97精品视频在线播放| 亚洲区小说区| 欧美极品欧美精品欧美图片| 久久综合九色综合欧美亚洲| 欧美另类高清videos的特点| 中国日韩欧美久久久久久久久| 夜夜躁日日躁狠狠久久av| 国产亚洲一区二区三区在线观看| 精品无码黑人又粗又大又长| 精品免费国产一区二区三区四区| 91探花在线观看| 蜜桃999成人看片在线观看| 亚洲免费高清| 国产探花视频在线播放| 欧美精品v国产精品v日韩精品| av大片在线| 精品国产乱码久久久久久久软件 | 99久久免费国产| 国产原创视频在线| 中文字幕免费国产精品| 亚洲午夜剧场| 免费看欧美一级片| 久久综合久久久久88| 亚洲男人天堂网址| 精品国产一区二区三区久久| av日韩精品| 精品www久久久久奶水| 国产精品久久久久久久久免费桃花| www.黄色国产| 亲子乱一区二区三区电影| 免费视频国产一区| 制服丝袜中文字幕第一页| 亚洲精品欧美二区三区中文字幕| 久久久久久久亚洲| 久久99热这里只有精品国产| 亚洲精品进入| 亚洲美女性囗交| 午夜精品成人在线视频|