午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > nginx http模塊數據存儲結構小結

nginx http模塊數據存儲結構小結

熱門標簽:艾澤拉斯地圖標注 網絡電話外呼系統開發 申請400電話收費標 淘寶辦理400電話是多少 福州語音電銷機器人招商 外呼線路隨意切換嗎 北海智能電銷機器人公司 菏澤自動電銷機器人公司 滴滴急救中心地圖標注

從本節開始,我們將進入http模塊實現原理的講解,關于http模塊,有一個非常重要的點就是其是如何存儲http塊、server塊和location塊的數據的,而且nginx有的配置項是可以在多個配置塊中使用的,當http塊、server塊和location塊中兩個或者兩個以上的配置塊都配置了該配置項的時候,就會有一個問題是,nginx是如何處理這些配置項的。本文主要講解http塊中的各個模塊數據的存儲方式,這將是理解nginx的http模塊的工作方式的重要基石。

1. 核心模塊的存儲方式

在nginx運行過程中,有一個全局配置結構體 ngx_cycle_t ,其有一個屬性 conf_ctx ,這個屬性是存儲nginx所有模塊配置的一個數組,這個數組的長度與nginx模塊的個數相同。不過需要注意的是, conf_ctx 數組的第一維只會存儲核心模塊的配置,而其他模塊對應的位置處的數組元素其實是為NULL。在 conf_ctx 中,各個核心模塊配置結構體的存儲位置與該模塊在所有模塊(包括非核心模塊)中的相對位置是一致的,如下圖所示為nginx存儲核心模塊的一個結構示意圖:

這里標注的 eventshttp 只是為了展示方便而添加的,本質上這個數組的元素的類型是 void* 的指針,至于該指針指向的具體結構體的類型,則是根據各個核心模塊自身的定義來的。

在http模塊下,其指向了一個 ngx_http_conf_ctx_t 類型的結構體,這個結構體的作用就是用來存儲http配置塊中各個配置項的數據的。如下是這個結構體的定義:

typedef struct {
 	// 存儲MAIN級別配置
  void **main_conf;
 	// 存儲SRV級別配置
  void **srv_conf;
 	// 存儲LOC級別配置
  void **loc_conf;
} ngx_http_conf_ctx_t;

我們知道,在nginx.conf配置文件中,在http塊下還配置有server塊,而server塊下也是可以有location塊,更有甚者,在location塊下可以有子location塊,如此往復,而這里的 ngx_http_conf_ctx_t 結構體的作用就是存儲所有的這些配置所對應的結構體數據。首先,我們需要明確的一點是,在nginx.conf配置文件中,配置項都是由一個個模塊定義的,一個模塊可以定義多個配置項,對于這些配置項的解析工作都是由這個模塊所定義的方法進行的。但是,一般的,一個模塊一般都只會定義一個結構體,這個結構體中的各個屬性則對應于該模塊所定義的各個配置項的數據,也就是說,通過各個模塊所定義的方法,其會將其所定義的配置項對應的配置轉換為該模塊所定義的結構體。這里所說的結構體就對應于上面的 main_conf 、 srv_confloc_conf 中的配置。從上面的定義就可以看出,這三個屬性的類型都是指針類型的數組,而數組的長度就對應于模塊的個數,準確來講,是對應于http模塊的各個。在解析各個http模塊的配置之前,nginx會對各個http模塊在當前類型的模塊(http模塊)中進行相對位置進行標記,每個http模塊的相對位置就對應于上面的三個屬性的數組下標。前面已經講到,每個http模塊都只會有一個配置結構體存儲該模塊所定義的所有配置數據,而這些配置結構體就是存儲在上面的三個數組中的。這樣,我們就能夠理解了,其實上面的結構體的三個屬性,每一個屬性的數組都對應了一個http模塊的配置結構體。

既然這里每個模塊都有一個結構體存儲在數組的對應索引位置,那這里為什么需要三個數組呢?比如說,對于 ngx_http_core_module ,其相對位置在http模塊是第一個,也就是說 main_conf[0]srv_conf[0]loc_conf[0] 存儲的都是 ngx_http_core_module 的配置結構體,為什么需要三個結構體。這里我們需要說明的是,對于每個http模塊,其會根據需要將配置項按照可使用范圍劃分為三類:僅用于http塊,可以用于http塊和server塊,以及可以用于http塊、server塊和location塊。每一類配置項都使用的是一個不同的結構體,比如 ngx_http_core_module 就定義了 ngx_http_core_main_conf_t 用于存儲僅用于http塊的配置項,定義了 ngx_http_core_srv_conf_t 用于存儲用于http塊和server塊的配置項,定義了 ngx_http_core_loc_conf_t 用于存儲用于http塊、server塊和location塊的配置項。對應于上面的數組就是, main_conf[0] 的結構體類型為 ngx_http_core_main_conf_t , srv_conf[0] 的結構體類型為 ngx_http_core_srv_conf_t , loc_conf[0] 對應的結構體類型為 ngx_http_core_loc_conf_t 。說到這里,我們就必須要厘清一個問題了,比如,對于某個配置項,其配置在了http塊中,但是其類型是可以用于http塊、server塊和location塊的,那么其就會被存儲在 loc_conf[0] 中,也就是說,上面的一整個結構體,從目前來看,存儲的都是在http塊中解析出來的各個配置項的數據。那么nginx是如何標記一個配置項是這三種類型中的哪一種呢?這主要是通過 ngx_command_t 結構體來定義的,如下所示為三個典型的配置:

{
 ngx_string("variables_hash_max_size"),
 NGX_HTTP_MAIN_CONF | NGX_CONF_TAKE1,
 ngx_conf_set_num_slot,
 	NGX_HTTP_MAIN_CONF_OFFSET,
 	offsetof(ngx_http_core_main_conf_t, variables_hash_max_size),
 	NULL
},
{
 ngx_string("listen"),
 	NGX_HTTP_SRV_CONF | NGX_CONF_1MORE,
 	ngx_http_core_listen,
 	NGX_HTTP_SRV_CONF_OFFSET,
 	0,
 	NULL
},
{
 ngx_string("root"),
 	NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF
 	 | NGX_CONF_TAKE1,
 	ngx_http_core_root,
 	NGX_HTTP_LOC_CONF_OFFSET,
 	0,
 	NULL
},

這里我們以 variables_hash_max_size 、 listenroot 三個指令為例,這三個指令都是 ngx_http_core_module 模塊定義的配置項,但是它們存儲的位置則是完全不同的。我們需要注意的就是每個指令的第四個屬性的定義: NGX_HTTP_MAIN_CONF_OFFSET 、 NGX_HTTP_SRV_CONF_OFFSETNGX_HTTP_LOC_CONF_OFFSET 。這三個類型的定義有兩重含義,一個是表示這個配置項是僅用于http塊,還是可以用于http塊和server塊,再或者是可以用于http塊、server塊和location塊;另一重含義是定義了這個配置項在上面講的 ngx_http_conf_ctx_t 中的偏移量,所謂的偏移量指的就是,在知道 ngx_http_conf_ctx_t 結構體對象的指針地址時,通過這里的偏移量就可以計算出當前配置項所存儲的數組。這里我們就需要展示一段代碼,即在 ngx_conf_parse() 方法中,其主要是用于解析nginx.conf配置文件的,在解析了某個配置項之后,就會在所有的模塊中,找到該配置項的定義,如果找到了配置項,就會嘗試獲取存儲該配置項所對應的結構體,并且會調用該配置項指定的方法進行配置項數據的解析。這里嘗試獲取該配置項所對應的結構體時,就需要用上上面的偏移量。如下是獲取該配置項的方法:

// 查找配置對象,NGX_DIRECT_CONF常量單純用來指定配置存儲區的尋址方法,只用于core模塊
if (cmd->type & NGX_DIRECT_CONF) {
 conf = ((void **) cf->ctx)[cf->cycle->modules[i]->index];

 // NGX_MAIN_CONF常量有兩重含義,其一是指定指令的使用上下文是main(其實還是指core模塊),
 // 其二是指定配置存儲區的尋址方法。
} else if (cmd->type & NGX_MAIN_CONF) {
 conf = &(((void **) cf->ctx)[cf->cycle->modules[i]->index]);

 // 除開core模塊,其他類型的模塊都會使用第三種配置尋址方式,也就是根據cmd->conf的值
 // 從cf->ctx中取出對應的配置。舉http模塊為例,cf->conf的可選值是NGX_HTTP_MAIN_CONF_OFFSET、
 // NGX_HTTP_SRV_CONF_OFFSET、NGX_HTTP_LOC_CONF_OFFSET,
 // 分別對應“http{}”、“server{}”、“location{}”這三個http配置級別。

 // 這個if判斷的作用主要是,cf->ctx的類型是ngx_http_conf_ctx_t,而cmd->conf主要的值可選
 // NGX_HTTP_MAIN_CONF_OFFSET、NGX_HTTP_SRV_CONF_OFFSET、NGX_HTTP_LOC_CONF_OFFSET,
 // 可以看到ngx_http_conf_ctx_t的屬性有main_conf、srv_conf和loc_conf,
 // 其實這里就是在計算當前的配置對象是存儲在這三個數組中的哪一個數組中,以default_type指令為例,
 // 其ngx_command_t的配置為:
 // {ngx_string("default_type"),
 //   NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
 //   ngx_conf_set_str_slot,
 //   NGX_HTTP_LOC_CONF_OFFSET,
 //   offsetof(ngx_http_core_loc_conf_t, default_type),
 //   NULL},
 // 可以看到,其conf屬性的值為NGX_HTTP_LOC_CONF_OFFSET,則說明其是存儲在loc_conf數組中的,
 // 而該數組中的元素類型為ngx_http_core_loc_conf_t,因而可以看到,后面ngx_command_t
 // 中offset屬性的值就指定為了offsetof(ngx_http_core_loc_conf_t, default_type),
 // 這就是在計算default_type屬性在ngx_http_core_loc_conf_t結構體中的位置。
 // 通過下面的if判斷第一步confp = *(void **) ((char *) cf->ctx + cmd->conf);,就可以
 // 計算出當前所使用的結構體是在main_conf、srv_conf
 // 和loc_conf的哪一個數組中,而通過第二步conf = confp[cf->cycle->modules[i]->ctx_index];
 // 的計算,就可以計算出該結構體在數組中的具體位置,并且獲取該結構體數據。
 // 需要注意的是,這種計算方式只適用于http模塊的配置項獲取,因為只有http模塊的配置結構體是
 // ngx_http_conf_ctx_t類型的
} else if (cf->ctx) {
 confp = *(void **) ((char *) cf->ctx + cmd->conf);

 if (confp) {
  conf = confp[cf->cycle->modules[i]->ctx_index];
 }
}

這里我們需要重點關注最后一個 else if 分支,這里就表明了http模塊是如何根據配置項的定義來計算該配置項所對應的結構體的存儲位置的。下面的圖就展示了包含有http塊配置的整體結構:

2. server塊的存儲方式

上面我們講到,使用 ngx_http_conf_ctx_t 結構體就可以存儲所有的http塊中的配置項,那么server塊中的配置項是如何存儲的呢?其主要存儲在 ngx_http_core_module 模塊的 main_conf 中,也即上面的 main_conf[0] 所對應的 ngx_http_core_main_conf_t 結構體中,該結構體有一個屬性 servers ,這個屬性的類型為 ngx_array_t ,也即一個數組。也就是說,在每個http配置塊下,每個server配置塊都對應于 servers 數組的一個元素,而數組的元素類型與http塊的一致,還是 ngx_http_conf_ctx_t 。不過區別在于,由于當前的配置項一定是可用于server塊或者location塊中的,而不是僅僅只能用于http塊中的,因而配置項的類型一定是上面講到的 NGX_HTTP_SRV_CONF_OFFSETNGX_HTTP_LOC_CONF_OFFSET 之一,而不可能是 NGX_HTTP_MAIN_CONF_OFFSET 。因而這里雖然每個server配置塊對應的配置結構體還是 ngx_http_conf_ctx_t ,但是其 main_conf 數組是不會有對應的配置項的,而只能從http塊中繼承配置項。既然是繼承,nginx的處理方式是直接將該數組的指針指向http塊對應的 ngx_http_conf_ctx_tmain_conf 數組。如下所示為兩個server塊配置的示意圖:

這個圖稍微看起來有點復雜,但實際上并不復雜,按照配置塊劃分,上面的 ngx_http_conf_ctx_t 中存儲的就是http塊的配置,而下面的兩個 ngx_http_conf_ctx_t 存儲的就是兩個server塊中的配置,中間的引用過程是通過http塊的 ngx_http_core_module 模塊對應的 ngx_http_core_main_conf_t.servers 進行的。需要注意的一點是,上面的server塊的配置中, main_conf 指針都是指向的http塊的對應 ngx_http_conf_ctx_tmain_conf 屬性。

3. location塊的存儲方式

對于location塊的存儲,其存儲結構也還是 ngx_http_conf_ctx_t ,并且由于當前配置項在location塊中的,因而其類型一定不會是 NGX_HTTP_MAIN_CONF_OFFSETNGX_HTTP_SRV_CONF_OFFSET ,也就是說,解析location配置項得到的數據一定是存儲在 loc_conf 數組中的。因而,與server塊一樣,location塊對應的 ngx_http_conf_ctx_t 結構體中的 main_confsrv_conf 指向的則是當前location所在的http塊的 main_conf 和所在的server塊的 srv_conf 數組。

另外,一個server塊下會有多個location塊,在存儲結構上,這些location塊是以隊列的方式進行組織的,與server塊類似,這個隊列則是存儲在其所在的server塊對應的 ngx_http_conf_ctx_tloc_conf[0] 中的。這里的 loc_conf[0] 的結構體類型為 ngx_http_core_loc_conf_s ,其有一個 ngx_queue_t 類型的屬性 locations 就是該location隊列。最后需要注意的是,這里的 locations 屬性表征的不僅僅只是server塊下的多個location塊,因為在location配置塊下還可以繼續配置多個location塊,如此不斷遞歸下去。這些子location塊的類型其實還是 ngx_http_core_loc_conf_s ,因而也是可以通過 locations 屬性進行表征的。如下是加入location配置塊的結構體示意圖:

圖中展示了兩個location并列組織的情形,其 main_confsrv_conf 分別指向了http塊的 main_conf 和當前location塊所在的server塊的 srv_conf ,并且兩個location塊對應的結構體是以隊列的方式組織在 ngx_http_core_loc_conf_t 中的。

4. 小結

本文從 ngx_cycle_t 結構體開始,介紹了http塊的配置項是如何存儲在 ngx_cycle_t 中的,并且依次介紹了http塊、server塊和location塊的存儲方式,以及相互之間的組織方式。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:丹東 混顯 滄州 延安 三沙 賀州 資陽 亳州

巨人網絡通訊聲明:本文標題《nginx http模塊數據存儲結構小結》,本文關鍵詞  nginx,http,模塊,數據,存儲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《nginx http模塊數據存儲結構小結》相關的同類信息!
  • 本頁收集關于nginx http模塊數據存儲結構小結的相關信息資訊供網民參考!
  • 推薦文章
    精品久久sese| 国产在线视频二区| 久久精品日产第一区二区三区精品版 | 亚洲一区二区三区香蕉| 欧美成人a在线| 神马午夜精品91| 三区精品视频观看| 欧美自拍大量在线观看| 精品人伦一区二区三区蜜桃网站| 免费看日韩精品| 日韩黄色a级片| 亚洲一级片免费| 阿v天堂2018| 亚洲啪啪av| 97视频国产在线| 亚洲人吸女人奶水| 一二区在线观看| 午夜剧场高清版免费观看| 国产69久久精品成人| 亚洲特级片在线| 91久久久久国产一区二区| 国产欧美日韩小视频| 欧美一级bbbbb性bbbb喷潮片| 一区二区三区视频在线看| 视频在线观看91| 国产九九热视频| 不卡视频一区二区| 精品亚洲夜色av98在线观看| 久久嫩草精品久久久精品| 精品无码人妻一区二区三区品| 日本久久久精品视频| 波多野结衣久草一区| 欧美视频第二页| 激情六月婷婷久久| 国产一级片毛片| 久久性爱视频网站| 男操女免费网站| 免费影院在线观看一区| 日本午夜人人精品| 国产精品成久久久久三级| 国产精品久久久久久久久影视| xvideos亚洲人网站| 色综合天天综合色综合av | 另类成人小视频在线| 99免费在线视频| 中文字幕免费播放| 91精品中文字幕| 日本一区二区欧美| 日韩精品无码一区二区| 亚洲天堂网视频| 国产精品久久久久久久免费看 | 一区二区三区在线视频免费| 亚洲免费伊人电影| 国产丝袜美腿一区二区三区| 国产午夜精品一区二区三区嫩草| 国产午夜亚洲精品羞羞网站| 自拍av一区二区三区| 91在线免费播放| 亚洲制服丝袜av| 亚洲人成网站精品片在线观看| 国产激情一区二区三区桃花岛亚洲| 精品一区二区三区久久| 激情亚洲综合在线| 国产精品77777| 成人黄色在线视频| 成人激情午夜影院| 久久综合九色综合欧美98| 青青青伊人色综合久久| 久久精品国产亚洲a| 丝袜亚洲另类欧美综合| 日韩电影免费一区| 久久亚洲精品伦理| 一级黄在线观看| 熟妇人妻av无码一区二区三区| 国产绿帽一区二区三区| 免费在线成人网| 久久成人免费网站| 99久久99久久久精品齐齐| 不卡的av在线播放| 中文在线免费一区三区高中清不卡| 久久综合九色综合久久久精品综合| 亚洲乱码一区二区三区在线观看| 色一情一伦一子一伦一区| 欧美精品久久99| 欧美精品一区二区三区蜜桃视频| 亚洲国产精品人人爽夜夜爽| 色先锋资源久久综合5566| 韩国福利视频一区| 成人xxxx视频| 91麻豆国产精品| 中文字幕av日韩精品| 色综合色综合色综合色综合| 手机在线看片日韩| 久久久久无码国产精品| 97人人澡人人爽人人模亚洲| www.桃色av嫩草.com| 国产精品主播直播| 色成年激情久久综合| 亚洲国产中文字幕久久网| 亚洲精品视频网上网址在线观看 | 欧美视频日韩视频在线观看| 成人亲热视频网站| 亚洲の无码国产の无码步美| 老司机免费视频一区二区| 日韩一区二区在线看| 国产美女直播视频一区| 国产成人精品一区二区三区在线观看| 亚洲男人天堂久久| 欧美在线免费观看亚洲| 5566中文字幕一区二区| xxxx日本黄色| 成人福利视频在线| 尤物精品国产第一福利三区| av在线免费观看国产| 免费污污视频在线观看| 日韩欧美亚洲综合| 日本精品一区二区三区不卡无字幕| 欧洲av一区二区三区| 国产做a爰片久久毛片| 中文字幕一区二区精品| 亚洲乱码国产乱码精品天美传媒| 久热精品在线观看| 亚洲成a人v欧美综合天堂下载| 国产不卡在线观看| jizz18女人高潮| 国产精品国产自产拍高清av| 国产不卡av在线免费观看| 999热精品视频| 国产精品爽爽久久久久久| 欧美日韩亚洲一区二区三区| 国产精品视频入口| 日韩欧美国产亚洲| 亚洲乱码日产精品bd| 91亚洲精品在线| 青青草原在线免费观看视频| 一区二区三区在线观看动漫| 999日本视频| 日本三级片在线观看| 精品久久香蕉国产线看观看gif| 国产成人综合精品| 成人免费视频毛片| 欧美一级搡bbbb搡bbbb| 天堂…中文在线最新版在线| 水蜜桃久久夜色精品一区的特点| 日韩综合视频在线观看| 红桃视频 国产| 国产乱淫av一区二区三区| 中文字幕亚洲综合| 国偷自产av一区二区三区麻豆| 国产精品一区在线观看你懂的| 欧美一级视频在线观看| 精品少妇人妻一区二区黑料社区| 中文字幕精品—区二区四季| 欧美亚洲另类久久综合| 天堂影院一区二区| 国产精品美女主播| av资源免费观看| 欧美色综合天天久久综合精品| 亚洲成熟丰满熟妇高潮xxxxx| 久久综合五月天婷婷伊人| 天堂资源在线亚洲资源| 精品一区二区在线看| 欧美精品生活片| 国产成人自拍视频在线| 在线播放国产精品| 精品国产乱码久久久久久鸭王1| 色婷婷国产精品| www.久久com| 欧美怡红院视频| 三级在线免费看| 成人免费一区二区三区在线观看| 成人日韩在线视频| 麻豆成人在线视频| 久久五月情影视| 在线观看日本网站| 久久久久久12| 青花影视在线观看免费高清| 色婷婷亚洲精品| 国产黄色特级片| 精品欧美aⅴ在线网站| 日韩成人手机在线| 欧美日本韩国一区二区三区视频| 免费看污黄网站在线观看| 亚洲精品资源美女情侣酒店| 成人在线观看高清| 一区二区欧美日韩视频| 青青青在线视频| 精品少妇v888av| 性生交大片免费全黄| 久久久精品2019中文字幕神马| 午夜毛片在线观看| 国产日本一区二区三区| 99国产精品国产精品久久| 777米奇影视第四色| 中文字幕一区二区三区电影| 国产又粗又长视频| 一区二区三区四区五区精品 | 欧美图片激情小说| 日韩欧美的一区| 国产91麻豆视频| 日韩av在线综合| 欧美成人三级在线| 久久婷婷麻豆| 波多野结衣电影免费观看| 欧美激情一区二区三区久久久 | 一区二区三区四区国产| 国产亚洲在线播放| 国精产品一区一区三区mba视频| 奇米影音第四色| 57pao成人国产永久免费| 中文字幕中文字幕在线一区| 国产精品av久久久久久无| 91精品综合视频| 欧美精品一区二区三区视频| 国产激情一区二区三区四区| 萌白酱视频在线| 欧美一区1区三区3区公司| 在线日韩一区二区| 免费观看久久久4p| 五月婷婷一区二区| 妞干网在线免费视频| 亚洲欧美一区二区三区四区| 一级特黄aaa| 亚洲免费一级视频| 国产精品入口免费视频一| 日韩在线视频免费| 欧美不卡在线播放| 国产精品网红福利| 亚洲精品720p| 一区二区激情小说| 激情都市一区二区| 国产一区二区三区四区视频| 国产ts丝袜人妖系列视频| 一卡二卡三卡视频| 国产厕所精品在线观看| 久久精品国产一区| 欧美性淫爽ww久久久久无| 狠狠色综合日日| 亚洲最大成人在线视频| 1024手机在线观看你懂的| 欧美一区二区三区在线免费观看| 欧美一级bbbbb性bbbb喷潮片| 亚洲开心激情网| 福利视频一区二区| 成人白浆超碰人人人人| 亚洲欧美成人一区| 国产在线视频91| 久久夜色精品国产亚洲aⅴ| 在线免费观看成人短视频| 成人观看免费视频| 91蝌蚪视频在线| 国风产精品一区二区| 国产日韩精品在线| 久久黄色av网站| 精品欧美一区二区久久| 欧美精彩视频一区二区三区| 手机在线精品视频| 久久国产波多野结衣| 欧美熟妇另类久久久久久多毛| 国产偷国产偷亚洲高清97cao| 97视频免费看| 一区二区三区国产视频| 欧美在线一区二区三区| 精品久久久免费| 在线视频一区二区免费| 亚洲一区自拍偷拍| 午夜电影一区二区| 色噜噜夜夜夜综合网| 亚洲欧洲国产专区| 午夜影视日本亚洲欧洲精品| 婷婷一区二区三区| 亚洲精品欧美二区三区中文字幕| 成av人片一区二区| 久久丁香综合五月国产三级网站| 久久久久久久久久成人| 欧美成人精品激情在线视频| 高h视频免费观看| 国产一级在线观看视频| 色欲狠狠躁天天躁无码中文字幕| 日本黄色的视频| 一区二区三区我不卡| 亚洲国产成人91精品| 亚洲视频在线播放| 美女一区二区三区视频| 国产精品678| 456亚洲影院| 欧美激情中文字幕在线| 最新的欧美黄色| 45www国产精品网站| 91av一区二区三区| 亚洲综合色av| 在线综合视频网站| 熟女人妇 成熟妇女系列视频| 成人免费毛片糖心| 久久久久久久久久久久久久免费看| 69xxxx国产| 国产成人免费视频网站高清观看视频 | 国产精品综合二区| 粉嫩av亚洲一区二区图片| 99久久777色| 91福利国产成人精品照片| 精品女厕一区二区三区| 国产乱子轮精品视频| 国产精品久久久久久久久快鸭 | 91av俱乐部| 成人蜜臀av电影| 欧美r级在线观看| 国产乱人伦真实精品视频| 国产精品波多野结衣| 日韩一卡二卡在线观看| 国产专区综合网| 日本视频久久久| 久久人妻无码aⅴ毛片a片app| 蜜臀久久99精品久久久久宅男| 精品久久久久久久久久久院品网| ijzzijzzij亚洲大全| 在线观看不卡的av| 亚洲av成人精品毛片| 精品女厕一区二区三区| 无码人妻精品一区二区三区99v| 国产女人18毛片水18精| 欧美xxxx老人做受| 年下总裁被打光屁股sp | 欧美一级免费观看| jlzzjizz在线播放观看| 亚洲乱码中文字幕综合| 国产成人亚洲精品| av在线播放中文字幕| 国内久久精品视频| 国产欧美亚洲日本| 国产精品久久久久久久久久久久久久久久久 | 国产精品视频精品| 国产又黄又粗又爽| 精品亚洲一区二区三区在线播放| 国产在线播放观看| 少妇精品高潮欲妇又嫩中文字幕 | 奇米一区二区三区| 欧美性猛交一区二区三区精品| 久久久影院一区二区三区| 国产又黄又粗又长| 日本不卡高字幕在线2019| 亚洲AV无码成人片在线观看| 成人黄色短视频在线观看| wwwwxxxxx欧美| 人妻无码一区二区三区| 精品av久久707| 国产 xxxx| 日韩三区在线观看| 久久精品老司机| 色八戒一区二区三区| 欧美成ee人免费视频| 国产一区二区三区四区五区入口 | 中文字幕在线观看第二页| 在线一区二区三区四区| 精品国产av无码一区二区三区| 亚洲国产精品精华液ab| 亚洲免费不卡| 国产传媒欧美日韩成人| 久久天天躁狠狠躁夜夜躁| 少妇高潮一区二区三区喷水| 亚洲色图在线观看| 国产无遮挡又黄又爽又色| 久久色.com| 成人黄色午夜影院| 久久精品人人| 久久99精品久久久久子伦| 亚洲欧美日韩免费| 中文字幕22页| 欧美刺激性大交免费视频| 91在线视频官网| 午夜久久久久久久| 国产91在线高潮白浆在线观看| 韩国毛片一区二区三区| 日本成人中文字幕在线| 国产精品久久久久久户外露出| 亚洲激情在线看| 精品福利在线导航| 永久免费成人代码| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲高清视频免费观看| 97碰碰碰免费色视频| 蜜乳av另类精品一区二区| 久久国产精品视频| 国产一级在线播放| 欧美日韩在线视频首页| 亚洲成色www.777999| 色综合天天综合| 天天操天天干天天摸| 欧美日韩成人一区二区三区| 少妇一级淫片免费看| 一本色道久久综合亚洲二区三区| 亚洲男人天堂一区| 最新日韩免费视频| 中文字幕亚洲欧美日韩高清 | 久久天天躁狠狠躁夜夜躁2014| 中文字幕av无码一区二区三区| 日韩三级电影网站| 精品亚洲永久免费精品| 天堂蜜桃一区二区三区| 巨乳女教师的诱惑| 久久99精品久久久久久噜噜| 91香蕉视频污| av资源在线免费观看| 精品亚洲第一| 亚洲精品亚洲人成人网| 日韩av卡一卡二| 97免费中文视频在线观看| 中日精品一色哟哟| 日本一区二区久久精品| 91高清在线观看|