日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx学习笔记(一)

發(fā)布時間:2025/3/8 Nginx 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx学习笔记(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Nginx初識

Nginx架構(gòu)

Nginx在后臺運行包含一個master進(jìn)程和多個worker進(jìn)程。所以Nginx一般以<u>多進(jìn)程</u>方式運行,且支持**<u>多線程</u>**,在調(diào)試時也可以選擇以<u>單進(jìn)程</u>方式運行。

master進(jìn)程用來管理worker進(jìn)程,可以接受外界信號,向worker發(fā)送信號,監(jiān)控worker狀態(tài)。worker平等且獨立處理各個請求,worker進(jìn)程的個數(shù)可以設(shè)置,一般與CPU核數(shù)一致。

Nginx進(jìn)程模型如圖1.1:

<center>圖1.1</center>

Nginx采用**<u>異步非阻塞</u>**的方式處理請求。完整的請求過程如下:

事件進(jìn)入后,若沒有準(zhǔn)備好,返回EAGAIN,設(shè)置超時時間,同一時間內(nèi)監(jiān)控多個事件,在此期間可以處理其他事情,在此時間內(nèi)有事件準(zhǔn)備好就返回。

基礎(chǔ)概念

connection

connection是對TCP連接的封裝,包括連接的socket,讀事件,寫事件。http請求也是建立在connection上的,所以Nginx可以作為web服務(wù)器,也可以作為郵件服務(wù)器。

Nginx處理連接的過程如下:

Nginx在啟動時會解析配置文件,得到監(jiān)聽端口和IP地址,然后在master進(jìn)程中初始化socket,fork多個子進(jìn)程。此時客戶端可以發(fā)起連接,當(dāng)客戶端與服務(wù)器三次握手建立連接后,某一子進(jìn)程會accept成功,得到建立好的連接的socket,然后創(chuàng)建對連接的封裝,進(jìn)行事件的處理與數(shù)據(jù)交換。最后,Nginx或客戶端主動關(guān)閉連接。

在操作系統(tǒng)中,通過ulimit -n,我們可以得到一個進(jìn)程所能打開的fd(file descriptor)的最大數(shù),即nofile,這會限制我們進(jìn)程的最大連接數(shù),影響程序所能支持的最大并發(fā)數(shù)。Nginx通過設(shè)置worker_connections來設(shè)置每個進(jìn)程的支持的最大連接數(shù),如果該值大于noflie,那實際最大連接數(shù)就是noflie。Nginx在實現(xiàn)時,通過連接池管理,每個worker進(jìn)程有一個獨立的連接池,連接池大小是worker_connections。Nginx所能建立的最大連接數(shù)應(yīng)是:worker_connections * worker_processes,對于HTTP請求本地資源也是同樣,如果HTTP作為反向代理,最大并發(fā)量應(yīng)為:worker_connections * worker_processes / 2。因為作為反向代理服務(wù)器,每個并發(fā)會建立與客戶端的連接和與后端服務(wù)的連接,會占用兩個連接。

request

request指的是HTTP請求,在Nginx中的數(shù)據(jù)結(jié)構(gòu)是ngx_http_request_t。ngx_http_request_t是對一個HTTP請求的封裝,包括請求行,請求頭,請求體,響應(yīng)行,響應(yīng)頭,響應(yīng)體。

Nginx中一個HTTP請求的生命周期如圖1.2.2

<center>圖1.2.2</center>

keepalive

HTTP請求是請求應(yīng)答式的,如果能知道每個請求頭與響應(yīng)體的長度,就可以在一個連接上執(zhí)行多個請求,這就是長連接。

如果客戶端的請求頭中的 connection為close,則表示客戶端需要關(guān)掉長連接,如果為 keep-alive,則客戶端需要打開長連接,如果客戶端的請求中沒有 connection 這個頭,那么根據(jù)協(xié)議,如果是 http1.0,則默認(rèn)為 close,如果是 http1.1,則默認(rèn)為 keep-alive。當(dāng) Nginx 設(shè)置了 keepalive 等待下一次的請求時,同時也會設(shè)置一個最大等待時間,這個時間是通過選項 keepalive_timeout 來配置的,如果配置為 0,則表示關(guān)掉 keepalive,此時,http 版本無論是 1.1 還是 1.0,客戶端的 connection 不管是 close 還是 keepalive,都會強制為 close。一般來說,當(dāng)客戶端的一次訪問,需要多次訪問同一個 server 時,打開 keepalive 的優(yōu)勢非常大,比如圖片服務(wù)器。打開 keepalive 會大量減少 time-wait 的數(shù)量。

pipe

在 http1.1 中,引入了一種新的特性,即 pipeline,流水線作業(yè),它可以看作為 keepalive 的一種升華,因為 pipeline 也是基于長連接的,目的就是利用一個連接做多次請求。如果客戶端要提交多個請求,對于keepalive來說,那么第二個請求,必須要等到第一個請求的響應(yīng)接收完全后,才能發(fā)起,這和 TCP 的停止等待協(xié)議是一樣的,得到兩個響應(yīng)的時間至少為2*RTT。而對 pipeline 來說,客戶端不必等到第一個請求處理完后,就可以馬上發(fā)起第二個請求,得到兩個響應(yīng)的時間可能能夠達(dá)到1*RTT。

Nginx 對 pipeline 中的多個請求的處理不是并行的,依然是一個請求接一個請求的處理,只是在處理第一個請求的時候,客戶端就可以發(fā)起第二個請求。Nginx 利用 pipeline 減少了處理完一個請求后,等待第二個請求的請求頭數(shù)據(jù)的時間。

lingering_close

lingering_close是延遲關(guān)閉,也就是說,當(dāng) Nginx 要關(guān)閉連接時,并非立即關(guān)閉連接,而是先關(guān)閉 tcp 連接的寫,再等待一段時間后再關(guān)掉連接的讀。

基本數(shù)據(jù)結(jié)構(gòu)

ngx_str_t

帶長度的字符串結(jié)構(gòu),原型如下:

typedef struct { size_t len; u_char *data; } ngx_str_t;

在結(jié)構(gòu)體當(dāng)中,data 指向字符串?dāng)?shù)據(jù)的第一個字符,字符串的結(jié)束用長度來表示,而不是由'\\0'來表示結(jié)束。基于此特性,在 Nginx 中,必須謹(jǐn)慎的去修改一個字符串。

這樣做有兩點好處,首先,通過長度來表示字符串長度,減少計算字符串長度的次數(shù)。其次,Nginx 可以重復(fù)引用一段字符串內(nèi)存,data 可以指向任意內(nèi)存,長度表示結(jié)束,而不用去 copy 一份自己的字符串(因為如果要以'\\0'結(jié)束,而不能更改原字符串,所以勢必要 copy 一段字符串),減少了很多不必要的內(nèi)存分配與拷貝。

Nginx 提供的操作字符串相關(guān)的 API 如下:

#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }

ngx_string(str) 是一個宏,它通過一個以'\\0'結(jié)尾的普通字符串 str 構(gòu)造一個 Nginx 的字符串,鑒于其中采用 sizeof 操作符計算字符串長度,因此參數(shù)必須是一個常量字符串。

#define ngx_null_string { 0, NULL }

定義變量時,使用 ngx_null_string 初始化字符串為空字符串,長度為 0,data 為 NULL。

#define ngx_str_set(str, text) (str)-&gt;len = sizeof(text) - 1; (str)-&gt;data = (u_char *) text

ngx_str_set 用于設(shè)置字符串 str 為 text,由于使用 sizeof 計算長度,故 text 必須為常量字符串。

#define ngx_str_null(str) (str)-&gt;len = 0; (str)-&gt;data = NULL

ngx_str_null 用于設(shè)置字符串 str 為空串,長度為 0,data 為 NULL。

ngx_pool_t

ngx_pool_t 提供了一種機制,幫助管理一系列的資源(如內(nèi)存,文件等),使得對這些資源的使用和釋放統(tǒng)一進(jìn)行,免除了使用過程中考慮到對各種各樣資源的什么時候釋放,是否遺漏了釋放的擔(dān)心。

typedef struct ngx_pool_s ngx_pool_t; struct ngx_pool_s { ngx_pool_data_t d; size_t max; ngx_pool_t *current; ngx_chain_t *chain; ngx_pool_large_t *large; ngx_pool_cleanup_t *cleanup; ngx_log_t *log; };

ngx_pool_t 的相關(guān)操作如下:

ngx_pool_t *ngx_create_pool(size_t size, ngx_log_t *log);

創(chuàng)建一個初始節(jié)點大小為 size 的 pool,log 為后續(xù)在該 pool 上進(jìn)行操作時輸出日志的對象。 需要說明的是 size 的選擇,size 的大小必須小于等于 NGX_MAX_ALLOC_FROM_POOL,且必須大于 sizeof(ngx_pool_t)。

void *ngx_palloc(ngx_pool_t *pool, size_t size);

從這個 pool 中分配一塊為 size 大小的內(nèi)存。函數(shù)分配的內(nèi)存的起始地址按照 NGX_ALIGNMENT 進(jìn)行了對齊。對齊操作會提高系統(tǒng)處理的速度,但會造成少量內(nèi)存的浪費。

void *ngx_pnalloc(ngx_pool_t *pool, size_t size);

從這個 pool 中分配一塊為 size 大小的內(nèi)存。但是此函數(shù)分配的內(nèi)存并沒有像上面的函數(shù)那樣進(jìn)行過對齊。

void *ngx_pcalloc(ngx_pool_t *pool, size_t size);

該函數(shù)也是分配size大小的內(nèi)存,并且對分配的內(nèi)存塊進(jìn)行了清零。

void *ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment);

按照指定對齊大小 alignment 來申請一塊大小為 size 的內(nèi)存。此處獲取的內(nèi)存不管大小都將被置于大內(nèi)存塊鏈中管理。

ngx_int_t ngx_pfree(ngx_pool_t *pool, void *p);

對于被置于大塊內(nèi)存鏈,也就是被 large 字段管理的一列內(nèi)存中的某塊進(jìn)行釋放。該函數(shù)的實現(xiàn)是順序遍歷 large 管理的大塊內(nèi)存鏈表,所以效率比較低下。

ngx_pool_cleanup_t *ngx_pool_cleanup_add(ngx_pool_t *p, size_t size);

ngx_pool_t 中的 cleanup 字段管理著一個特殊的鏈表,該鏈表的每一項都記錄著一個特殊的需要釋放的資源。對于這個鏈表中每個節(jié)點所包含的資源如何去釋放,是自說明的。這也就提供了非常大的靈活性。這個鏈表每個節(jié)點的類型如下:

typedef struct ngx_pool_cleanup_s ngx_pool_cleanup_t; typedef void (*ngx_pool_cleanup_pt)(void *data); struct ngx_pool_cleanup_s { ngx_pool_cleanup_pt handler; void *data; ngx_pool_cleanup_t *next; };

  • data: 指明了該節(jié)點所對應(yīng)的資源。
  • handler: 是一個函數(shù)指針,指向一個可以釋放 data 所對應(yīng)資源的函數(shù)。該函數(shù)只有一個參數(shù),就是 data。
  • next: 指向該鏈表中下一個元素。

void ngx_destroy_pool(ngx_pool_t *pool);

該函數(shù)就是釋放 pool 中持有的所有內(nèi)存,以及依次調(diào)用 cleanup 字段所管理的鏈表中每個元素的 handler 字段所指向的函數(shù),來釋放掉所有該 pool 管理的資源。并且把 pool 指向的 ngx_pool_t 也釋放掉了。

void ngx_reset_pool(ngx_pool_t *pool);

該函數(shù)釋放 pool 中所有大塊內(nèi)存鏈表上的內(nèi)存,小塊內(nèi)存鏈上的內(nèi)存塊都修改為可用。

ngx_array_t

ngx_array_t 是 Nginx 的數(shù)組結(jié)構(gòu)。

typedef struct ngx_array_s ngx_array_t; struct ngx_array_s { void *elts; size_t size; ngx_pool_t *pool; };

  • elts: 指向?qū)嶋H的數(shù)據(jù)存儲區(qū)域。
  • nelts: 數(shù)組實際元素個數(shù)。
  • size: 數(shù)組單個元素的大小,單位是字節(jié)。
  • nalloc: 數(shù)組的容量。表示該數(shù)組在不引發(fā)擴容的前提下,可以最多存儲的元素的個數(shù)。當(dāng) nelts 增長到達(dá) nalloc 時,如果再往此數(shù)組中存儲元素,則會引發(fā)數(shù)組的擴容。數(shù)組的容量將會擴展到原有容量的 2 倍大小。實際上是分配新的一塊內(nèi)存,新的一塊內(nèi)存的大小是原有內(nèi)存大小的 2 倍。原有的數(shù)據(jù)會被拷貝到新的一塊內(nèi)存中。
  • pool: 該數(shù)組用來分配內(nèi)存的內(nèi)存池。

ngx_array_t 相關(guān)操作函數(shù)如下:

ngx_array_t *ngx_array_create(ngx_pool_t *p, ngx_uint_t n, size_t size);

創(chuàng)建一個新的數(shù)組對象,并返回這個對象。

  • p: 數(shù)組分配內(nèi)存使用的內(nèi)存池;

  • n: 數(shù)組的初始容量大小,即在不擴容的情況下最多可以容納的元素個數(shù)。

  • size: 單個元素的大小,單位是字節(jié)。

void ngx_array_destroy(ngx_array_t *a);

銷毀該數(shù)組對象,并釋放其分配的內(nèi)存回內(nèi)存池。

void *ngx_array_push(ngx_array_t *a);

在數(shù)組 a 上新追加一個元素,并返回指向新元素的指針。

void *ngx_array_push_n(ngx_array_t *a, ngx_uint_t n);

在數(shù)組 a 上追加 n 個元素,并返回指向這些追加元素的首個元素的位置的指針。

ngx_hash_t

ngx_hash_t 是 Nginx 的 hash 表。

ngx_hash_t 的實現(xiàn)有幾個顯著的特點:

  • ngx_hash_t 不像其他的 hash 表的實現(xiàn),可以插入刪除元素,它只能一次初始化,構(gòu)建起整個 hash 表以后,既不能再刪除,也不能在插入元素了。
  • ngx_hash_t 的開鏈并不是真的開了一個鏈表,實際上是開了一段連續(xù)的存儲空間,幾乎可以看做是一個數(shù)組。這是因為 ngx_hash_t 在初始化的時候,會經(jīng)歷一次預(yù)計算的過程,提前把每個桶里面會有多少元素放進(jìn)去給計算出來,這樣就提前知道每個桶的大小了。那么就不需要使用鏈表,一段連續(xù)的存儲空間就足夠了。這也從一定程度上節(jié)省了內(nèi)存的使用。
  • ngx_hash_t 的初始化如下:

    ngx_int_t ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts);

    names 是初始化一個 ngx_hash_t 所需要的所有 key 的一個數(shù)組。而 nelts 就是 key 的個數(shù)。

    以下是ngx_hash_init_t 類型,該類型提供了初始化一個 hash 表所需要的一些基本信息。

    typedef struct { ngx_hash_t *hash; ngx_hash_key_pt key; ngx_uint_t max_size; ngx_uint_t bucket_size; char *name; ngx_pool_t *pool; ngx_pool_t *temp_pool; } ngx_hash_init_t;

    • hash: 該字段如果為 NULL,那么調(diào)用完初始化函數(shù)后,該字段指向新創(chuàng)建出來的 hash 表。如果該字段不為 NULL,那么在初始的時候,所有的數(shù)據(jù)插入了這個字段所指的 hash 表中。
    • key: 指向從字符串生成 hash 值的 hash 函數(shù)。Nginx 的源代碼中提供了默認(rèn)的實現(xiàn)函數(shù) ngx_hash_key_lc。
    • max_size: hash 表中的桶的個數(shù)。該字段越大,元素存儲時沖突的可能性越小,每個桶中存儲的元素會更少,則查詢的速度更快。這個值越大,越造成內(nèi)存的浪費也越大。
    • bucket_size: 每個桶的最大限制大小,單位是字節(jié)。如果在初始化一個 hash 表的時候,發(fā)現(xiàn)某個桶里面無法存的下所有屬于該桶的元素,則 hash 表初始化失敗。
    • name: 該 hash 表的名字。
    • pool: 該 hash 表分配內(nèi)存使用的 pool。
    • temp_pool: 該 hash 表使用的臨時 pool,初始化完成后,該 pool 可以被釋放和銷毀。

    存儲 hash 表 key 的數(shù)組的結(jié)構(gòu)如下:

    typedef struct { ngx_str_t key; ngx_uint_t key_hash; void *value; } ngx_hash_key_t;

    ngx_hash_wildcard_t

    Nginx 為了處理帶有通配符的域名的匹配問題,實現(xiàn)了 ngx_hash_wildcard_t 這樣的 hash 表。它可以支持兩種類型的帶有通配符的域名。一種是通配符在前的,例如:*.abc.com,這樣的 key,可以匹配 www.abc.com,qqq.www.abc.com 之類的。另外一種是通配符在末尾的,例如:mail.xxx.*,請?zhí)貏e注意通配符在末尾的不像位于開始的通配符可以被省略掉。這樣的通配符,可以匹配 mail.xxx.com、mail.xxx.com.cn、mail.xxx.net 之類的域名。

    ngx_int_t ngx_hash_wildcard_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts);

    該函數(shù)用來構(gòu)建一個可以包含通配符 key 的 hash 表。

    void *ngx_hash_find_wc_head(ngx_hash_wildcard_t *hwc, u_char *name, size_t len);

    該函數(shù)查詢包含通配符在前的 key 的 hash 表的。

    • hwc: hash 表對象的指針。
    • name: 需要查詢的域名,例如: www.abc.com。
    • len: name 的長度。

    該函數(shù)返回匹配的通配符對應(yīng) value。如果沒有查到,返回 NULL。

    void *ngx_hash_find_wc_tail(ngx_hash_wildcard_t *hwc, u_char *name, size_t len);

    該函數(shù)查詢包含通配符在末尾的 key 的 hash 表的。

    ngx_hash_combined_t

    組合類型 hash 表,該 hash 表的定義如下:

    typedef struct { ngx_hash_t hash; ngx_hash_wildcard_t *wc_head; ngx_hash_wildcard_t *wc_tail; } ngx_hash_combined_t;

    該類型實際上包含了三個 hash 表,一個普通 hash 表,一個包含前向通配符的 hash 表和一個包含后向通配符的 hash 表。

    該 hash 表的查詢,Nginx 提供了一個方便的函數(shù) ngx_hash_find_combined。

    void *ngx_hash_find_combined(ngx_hash_combined_t *hash, ngx_uint_t key, u_char *name, size_t len);

    該函數(shù)在此組合 hash 表中,依次查詢其三個子 hash 表,看是否匹配,一旦找到,立即返回查找結(jié)果,如果有多個可能匹配,則只返回第一個匹配的結(jié)果。

    • hash: 此組合 hash 表對象。
    • key: 根據(jù) name 計算出的 hash 值。
    • name: key 的具體內(nèi)容。
    • len: name 的長度。

    返回查詢的結(jié)果,未查到則返回 NULL。

    ngx_list_t

    他是一個類似 list 的數(shù)據(jù)結(jié)構(gòu)。它的節(jié)點不像我們常見的 list 的節(jié)點,只能存放一個元素,ngx_list_t 的節(jié)點實際上是一個固定大小的數(shù)組。

    list定義如下:

    typedef struct { ngx_list_part_t *last; ngx_list_part_t part; size_t size; ngx_uint_t nalloc; ngx_pool_t *pool; } ngx_list_t;

    • last: 指向該鏈表的最后一個節(jié)點。
    • part: 該鏈表的首個存放具體元素的節(jié)點。
    • size: 鏈表中存放的具體元素所需內(nèi)存大小。
    • nalloc: 每個節(jié)點所含的固定大小的數(shù)組的容量。
    • pool: 該 list 使用的分配內(nèi)存的 pool。

    節(jié)點的定義如下:

    typedef struct ngx_list_part_s ngx_list_part_t; struct ngx_list_part_s { void *elts; ngx_uint_t nelts; ngx_list_part_t *next; };

    • elts: 節(jié)點中存放具體元素的內(nèi)存的開始地址。
    • nelts: 節(jié)點中已有元素個數(shù)。這個值是不能大于鏈表頭節(jié)點 ngx_list_t 類型中的 nalloc 字段的。
    • next: 指向下一個節(jié)點。

    ngx_list_t *ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size);

    該函數(shù)創(chuàng)建一個 ngx_list_t 類型的對象,并對該 list 的第一個節(jié)點分配存放元素的內(nèi)存空間。

    • pool: 分配內(nèi)存使用的 pool。
    • n: 每個節(jié)點(ngx_list_part_t)固定長度的數(shù)組的長度,即最多可以存放的元素個數(shù)。
    • size: 每個元素所占用的內(nèi)存大小。
    • 返回值: 成功返回指向創(chuàng)建的 ngx_list_t 對象的指針,失敗返回 NULL。

    void *ngx_list_push(ngx_list_t *list);

    該函數(shù)在給定的 list 的尾部追加一個元素,并返回指向新元素存放空間的指針。如果追加失敗,則返回 NULL。

    ngx_queue_t

    ngx_queue_t 是 Nginx 中的雙向鏈表。

    typedef struct ngx_queue_s ngx_queue_t; struct ngx_queue_s { ngx_queue_t *prev; ngx_queue_t *next; };

    不同于教科書中將鏈表節(jié)點的數(shù)據(jù)成員聲明在鏈表節(jié)點的結(jié)構(gòu)體中,ngx_queue_t 只是聲明了前向和后向指針。

    Nginx配置系統(tǒng)

    配置系統(tǒng)

    Nginx的配置系統(tǒng)由一個祝配置文件和其他輔助配置文件構(gòu)成。這些文件均是純文本文件,全位于安裝目錄下的conf目錄下。

    配置文件中以#開始的行,或前面有若干空格或者 TAB,然后再跟#的行,都被認(rèn)為是注釋。

    在 nginx.conf 中,包含若干配置項。每個配置項由配置指令和指令參數(shù) 2 個部分構(gòu)成。指令參數(shù)也就是配置指令對應(yīng)的配置值。

    指令概述

    配置指令是一個字符串,可以用單引號或者雙引號括起來,也可以不括。但是如果配置指令包含空格,一定要引起來。

    指令參數(shù)

    指令的參數(shù)使用一個或者多個空格或者 TAB 字符與指令分開。指令的參數(shù)有一個或者多個 TOKEN 串組成。TOKEN 串之間由空格或者 TAB 鍵分隔。

    TOKEN 串分為簡單字符串或者是復(fù)合配置塊。復(fù)合配置塊即是由大括號括起來的一堆內(nèi)容。一個復(fù)合配置塊中可能包含若干其他的配置指令。

    如果一個配置指令的參數(shù)全部由簡單字符串構(gòu)成,也就是不包含復(fù)合配置塊,那么我們就說這個配置指令是一個簡單配置項,否則稱之為復(fù)雜配置項。例如下面這個是一個簡單配置項:

    error_page 500 502 503 504 /50x.html;

    對于簡單配置,配置項的結(jié)尾使用分號結(jié)束。對于復(fù)雜配置項,包含多個 TOKEN 串的,一般都是簡單 TOKEN 串放在前面,復(fù)合配置塊一般位于最后,而且其結(jié)尾,并不需要再添加分號。例如下面這個復(fù)雜配置項:

    location {root /home/jizhao/nginx-book/build/html;index index.html index.htm; }

    指令上下文

    nginx.conf 中的配置信息,根據(jù)其邏輯上的意義,對它們進(jìn)行分類,也就是分成了多個作用域,或稱之為配置指令上下文。不同的作用域含有一個或者多個配置項。

    當(dāng)前 Nginx 支持的幾個指令上下文:

    • main: Nginx 在運行時與具體業(yè)務(wù)功能(比如http服務(wù)或者email服務(wù)代理)無關(guān)的一些參數(shù),比如工作進(jìn)程數(shù),運行的身份等。
    • http: 與提供 http 服務(wù)相關(guān)的一些配置參數(shù)。例如:是否使用 keepalive ,是否使用gzip進(jìn)行壓縮等。
    • server: http 服務(wù)上支持若干虛擬主機。每個虛擬主機一個對應(yīng)的 server 配置項,配置項里面包含該虛擬主機相關(guān)的配置。在提供 mail 服務(wù)的代理時,也可以建立若干 server,每個 server 通過監(jiān)聽的地址來區(qū)分。
    • location: http 服務(wù)中,某些特定的URL對應(yīng)的一系列配置項。
    • mail: 實現(xiàn) email 相關(guān)的 SMTP/IMAP/POP3 代理時,共享的一些配置項。

    模塊化體系結(jié)構(gòu)

    模塊化體系結(jié)構(gòu)

    Nginx 的內(nèi)部結(jié)構(gòu)是由核心部分和一系列的功能模塊所組成。這樣劃分是為了使得每個模塊的功能相對簡單,便于開發(fā),同時也便于對系統(tǒng)進(jìn)行功能擴展。

    Nginx 提供了 Web 服務(wù)器的基礎(chǔ)功能,也提供了 Web 服務(wù)反向代理,Email 服務(wù)反向代理功能。Nginx 的核心功能部分實現(xiàn)了底層的通訊協(xié)議,為其他模塊和 Nginx 進(jìn)程構(gòu)建了基本的運行時環(huán)境,并且構(gòu)建了其他各模塊的協(xié)作基礎(chǔ)。

    模塊的分類

    Nginx 的模塊根據(jù)其功能基本上可以分為以下幾種類型:

    • event module: 搭建了獨立于操作系統(tǒng)的事件處理機制的框架,及提供了各具體事件的處理。包括 ngx_events_module, ngx_event_core_module 和 ngx_epoll_module 等。Nginx 具體使用何種事件處理模塊,依賴于具體的操作系統(tǒng)和編譯選項。
    • phase handler: 此類型的模塊也被直接稱為 handler 模塊。主要負(fù)責(zé)處理客戶端請求并產(chǎn)生待響應(yīng)內(nèi)容,比如 ngx_http_static_module 模塊,負(fù)責(zé)客戶端的靜態(tài)頁面請求處理并將對應(yīng)的磁盤文件準(zhǔn)備為響應(yīng)內(nèi)容輸出。
    • output filter: 也稱為 filter 模塊,主要是負(fù)責(zé)對輸出的內(nèi)容進(jìn)行處理,可以對輸出進(jìn)行修改。例如,可以實現(xiàn)對輸出的所有 html 頁面增加預(yù)定義的 footbar 一類的工作,或者對輸出的圖片的 URL 進(jìn)行替換之類的工作。
    • upstream: upstream 模塊實現(xiàn)反向代理的功能,將真正的請求轉(zhuǎn)發(fā)到后端服務(wù)器上,并從后端服務(wù)器上讀取響應(yīng),發(fā)回客戶端。upstream 模塊是一種特殊的 handler,只不過響應(yīng)內(nèi)容不是真正由自己產(chǎn)生的,而是從后端服務(wù)器上讀取的。
    • load-balancer: 負(fù)載均衡模塊,實現(xiàn)特定的算法,在眾多的后端服務(wù)器中,選擇一個服務(wù)器出來作為某個請求的轉(zhuǎn)發(fā)服務(wù)器。

    請求處理

    請求的處理流程

    實際上業(yè)務(wù)處理邏輯都在 worker 進(jìn)程中。worker 進(jìn)程中有一個函數(shù),執(zhí)行無限循環(huán),不斷處理收到的來自客戶端的請求,并進(jìn)行處理,直到整個 Nginx 服務(wù)被停止。

    worker 進(jìn)程中,ngx_worker_process_cycle()函數(shù)就是處理函數(shù)。在這個函數(shù)中,一個請求的簡單處理流程如下:

    • 操作系統(tǒng)提供的機制(例如 epoll, kqueue 等)產(chǎn)生相關(guān)的事件。
    • 接收和處理這些事件,如接受到數(shù)據(jù),則產(chǎn)生更高層的 request 對象。
    • 處理 request 的 header 和 body。
    • 產(chǎn)生響應(yīng),并發(fā)送回客戶端。
    • 完成 request 的處理。
    • 重新初始化定時器及其他事件。

    總結(jié)

    以上是生活随笔為你收集整理的Nginx学习笔记(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    一级黄网 | 欧美性做爰猛烈叫床潮 | 日韩在线观看视频在线 | 国产精品永久 | 久久麻豆精品 | 国产系列 在线观看 | 国产原创在线观看 | 免费99精品国产自在在线 | 91av在线视频播放 | 国产精品12| 黄色免费观看网址 | 91九色porny蝌蚪视频 | 探花视频在线观看免费版 | 亚洲精品一区二区18漫画 | 午夜丰满寂寞少妇精品 | 天天干,天天插 | 国产日韩精品欧美 | 国产色就色 | 久久有精品 | 人人狠狠综合久久亚洲 | 国产午夜精品一区二区三区嫩草 | 欧美久久久久久久久久久 | 黄网站大全 | 国产粉嫩在线观看 | 天天干天天操天天射 | 国产又粗又长又硬免费视频 | 免费在线观看成人av | 欧美国产三区 | 国产亚洲视频中文字幕视频 | 久久人人添人人爽添人人88v | 黄色av影院 | 国产精品毛片久久久久久 | 日韩久久久久久久久久 | 亚洲精品在线观看免费 | 亚洲人成人在线 | 亚州人成在线播放 | 激情五月网站 | 欧美在线观看视频一区二区 | 日韩毛片在线播放 | 六月丁香在线观看 | av免费在线免费观看 | 国产成人精品一区二区三区福利 | 国产精品久久嫩一区二区免费 | 久久久久一区 | 69国产盗摄一区二区三区五区 | 国产视频在线看 | 狠狠色丁香婷婷综合橹88 | 懂色av懂色av粉嫩av分享吧 | 友田真希x88av| 久久99久久久久久 | 国产精成人品免费观看 | 国产一级片网站 | 97精品国产97久久久久久 | 狠狠狠色丁香婷婷综合久久88 | 亚洲综合成人在线 | 91大神电影| 中文字幕免费一区 | 免费福利小视频 | 国内精品久久久久久久影视麻豆 | 成人av免费在线观看 | 中国精品少妇 | 俺要去色综合狠狠 | 欧美精品亚洲精品日韩精品 | 九九精品久久久 | avove黑丝 | 欧美午夜精品久久久久久浪潮 | 天天干天天干天天干天天干天天干天天干 | 最新国产精品亚洲 | 国产精品成人一区二区三区吃奶 | 免费色视频在线 | 中文字幕成人在线观看 | 九九九在线观看视频 | 国产精品综合久久久久 | 国产精品久久久久婷婷二区次 | 999国产精品视频 | 伊人成人精品 | 久久国产经典 | 欧美精品一区二区三区一线天视频 | 四虎影视av | 一区二区不卡 | 日韩视频免费在线观看 | av韩国在线 | 久久久久伊人 | 三日本三级少妇三级99 | 中文字幕中文字幕 | 国产精品手机在线观看 | 日韩欧美一区二区三区在线观看 | 婷婷在线免费观看 | 在线91色| 婷婷在线免费视频 | av线上免费观看 | 操处女逼| 免费看片网站91 | 超碰人人做 | 国产黄免费在线观看 | 激情久久久久久久久久久久久久久久 | 中文字幕在线一二 | 日韩免费高清在线观看 | 欧美性极品xxxx娇小 | 久久在视频 | 国产午夜精品一区二区三区 | 午夜国产在线观看 | 超碰九九 | 久久综合中文字幕 | 99久久国产免费免费 | 极品国产91在线网站 | 91成人在线视频观看 | 成人av电影在线观看 | av一级二级 | 国产人成免费视频 | 国产香蕉97碰碰碰视频在线观看 | 人人精品 | 久久精品一二区 | a级片韩国 | 狠狠干成人 | 免费国产在线精品 | 最新国产精品久久精品 | 99久久久国产免费 | 久久成人国产精品免费软件 | 亚洲国产欧洲综合997久久, | 韩国精品福利一区二区三区 | 日日干天天爽 | 99国产精品视频免费观看一公开 | 狠狠gao| 欧美午夜一区二区福利视频 | 九草视频在线 | 99久久久久久久 | 黄色毛片在线观看 | 国产精品99久久免费黑人 | 国产不卡免费视频 | 国产成人精品av | ,午夜性刺激免费看视频 | 久久久免费av | 日韩免费一区二区三区 | 成人资源在线 | 中文字幕在线视频精品 | 久久久久久久国产精品视频 | 免费毛片一区二区三区久久久 | 一级黄色片在线观看 | 国产九色在线播放九色 | 91精品视屏| 亚洲欧美日韩一区二区三区在线观看 | 97在线成人 | 五月天激情开心 | av大全在线观看 | 日韩精品免费在线视频 | 色无五月| 狠狠网亚洲精品 | 精品国产一区二区三区不卡 | 免费在线观看一区二区三区 | 蜜桃视频日本 | 欧美日韩观看 | 国产精品精品久久久久久 | 2021久久| 丁香激情网 | 91黄视频在线观看 | 久久久久国产精品免费免费搜索 | 国产日韩欧美在线看 | 久久久久国产精品免费免费搜索 | 97**国产露脸精品国产 | 国产精品久久久久久久午夜片 | 毛片网站免费在线观看 | 精品国产免费看 | 午夜美女av| 国产精品欧美久久久久天天影视 | 中文字幕色婷婷在线视频 | 亚洲国产黄色 | 看av免费| 久久毛片网 | 亚洲天堂网在线播放 | 国产在线高清 | 亚洲首页| avcom在线| 欧美色图亚洲图片 | 最新av免费在线观看 | 欧美日韩精品国产 | 国产午夜麻豆影院在线观看 | 天天综合成人 | 99精品视频中文字幕 | 日日弄天天弄美女bbbb | 国产黄色精品在线 | 日韩欧美在线中文字幕 | 欧美粗又大 | 亚洲黄色在线 | 中文字幕在线播出 | 99精品国产高清在线观看 | 手机看片午夜 | 国产一区二区免费 | 久草在线久草在线2 | 国产免费高清视频 | 国产免费美女 | 国产免费久久久久 | 婷婷色网视频在线播放 | 国产日韩欧美在线播放 | 国产 成人 久久 | 国产不卡视频在线播放 | 国产精品女同一区二区三区久久夜 | 国产精品一区二区三区四 | 五月婷婷影视 | 伊人小视频 | 国内久久久久 | av一区二区三区在线观看 | 天天干天天操人体 | 五月婷婷综合激情网 | 久久国语 | 亚洲视频 中文字幕 | 五月天婷婷在线观看视频 | 欧美黑吊大战白妞欧美 | 伊人色综合网 | 国产成人精品一区二区三区福利 | 96av麻豆蜜桃一区二区 | 91网站观看 | 99精品视频一区 | 久久久久久久久久亚洲精品 | 日本性视频 | 在线观看亚洲国产精品 | av高清免费| 天海冀一区二区三区 | av网址最新 | 午夜视频欧美 | 国外调教视频网站 | 在线观看亚洲国产 | 91在线观看黄 | 久久99热国产 | 久久精品—区二区三区 | 天天天天天天操 | 国产99在线免费 | 国产精品久久久久久久久久久久午 | 在线视频免费观看 | 亚洲国产丝袜在线观看 | 久久久久久久久久久久久久电影 | 少妇18xxxx性xxxx片 | 国产精品一区二区麻豆 | 国产69久久精品成人看 | 午夜视频一区二区 | 国产一线在线 | 久久久一本精品99久久精品66 | 黄色一区三区 | 欧美激情综合色 | 日韩最新理论电影 | 久久草草热国产精品直播 | 999免费视频 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 美女福利视频 | 国产综合精品久久 | 人人舔人人舔 | 亚洲成人一区 | 亚洲精品国 | 激情喷水 | 91传媒在线看 | 日韩理论电影在线 | 麻豆一二三精选视频 | 99欧美| 麻豆精品视频在线 | 久久久久久国产精品999 | 亚洲天堂网视频在线观看 | 日韩电影中文字幕 | 亚洲精品乱码 | 成人毛片一区二区三区 | 国内精品视频免费 | 菠萝菠萝蜜在线播放 | 国产精品美女在线观看 | 精品成人a区在线观看 | 女女av在线| 国产成人精品一二三区 | 久久爱影视i | 中文字幕欧美日韩va免费视频 | 在线看不卡av | 欧美伦理一区二区三区 | av电影免费观看 | 国产高清视频色在线www | 国产成人精品一区二区三区福利 | av成人在线电影 | 97爱| 精品久久久久久久久久久院品网 | 国产只有精品 | 亚洲国产精品资源 | 国产精品99久久久精品免费观看 | 亚洲一级片在线观看 | 欧美在线视频二区 | 国产一级免费视频 | 午夜国产影院 | 亚洲精品资源在线 | 99色在线播放 | 午夜精品久久久久久久99婷婷 | 国产一区免费视频 | 中文字幕一区二区三区视频 | 久草免费在线视频观看 | 亚洲成人黄色在线观看 | 国产精品18久久久久久首页狼 | 国产专区在线看 | 最新超碰在线 | 欧美精品中文在线免费观看 | 99在线观看视频网站 | 国产一区二区三区在线免费观看 | 日韩黄色一区 | 免费成人黄色av | 西西大胆啪啪 | 婷婷激情5月天 | 亚洲国产欧美在线看片xxoo | 久草精品视频在线看网站免费 | 蜜臀av麻豆 | 成年人免费看片网站 | 国产精品1区2区在线观看 | 国产小视频免费观看 | 成人免费视频视频在线观看 免费 | 国产精品一区二区电影 | 久久免费一| 精品一区在线看 | 中文字幕一区二区三区乱码在线 | 成人在线网站观看 | 国产精品v欧美精品v日韩 | 午夜在线观看一区 | 国产黄色资源 | 欧美日韩xx| 99久久久国产精品免费观看 | 一区二区久久 | 久久综合九色综合97_ 久久久 | 天天综合色 | 99久久这里有精品 | 亚州欧美视频 | 在线播放亚洲 | 激情深爱.com | 成人免费视频免费观看 | 黄色影院在线免费观看 | av电影中文 | 日韩av在线看 | 在线韩国电影免费观影完整版 | 国产在线观看污片 | 黄色片网站 | 天堂入口网站 | 麻豆一二三精选视频 | 亚洲最大的av网站 | 1024手机看片国产 | 日韩精品一区二区三区在线播放 | 日韩三级av | 久久精品婷婷 | 免费日韩 精品中文字幕视频在线 | 激情 婷婷 | 国产精品v欧美精品v日韩 | 国产一级高清视频 | 欧美少妇的秘密 | 日韩欧美在线影院 | 玖玖视频免费在线 | 97成人在线视频 | 四虎国产精品成人免费影视 | 视频成人永久免费视频 | 亚洲精品成人av在线 | 免费在线观看成人 | 久青草视频在线观看 | 亚洲粉嫩av| 国产特级毛片aaaaaa | 日韩精品一区二区三区在线播放 | 亚洲精品一区二区精华 | 成人av在线亚洲 | 日黄网站 | 久久极品 | 国产精品系列在线观看 | 超碰97人人射妻 | 久久久久成人精品免费播放动漫 | 天天操天天拍 | 国产高清视频在线 | 天天干人人插 | 国产一区二区三区高清播放 | 国内精品久久久久影院优 | 日韩理论在线播放 | 国产精品久久久久久高潮 | 日本美女xx | 综合激情| 中文字幕 91| 国产成人免费观看久久久 | 成人毛片一区 | 中文字幕在线免费观看视频 | av在线永久免费观看 | 久久久久久激情 | 国产精品婷婷午夜在线观看 | 激情影音先锋 | 久久热首页 | 精品亚洲免费视频 | 麻豆va一区二区三区久久浪 | 在线观看完整版免费 | 99国内精品久久久久久久 | 99热在线这里只有精品 | 国产高清视频免费 | 91高清免费在线观看 | 麻豆传媒视频在线 | 中文字幕 欧美性 | 日韩欧美一区二区三区视频 | 国产精品理论片在线观看 | 91视频麻豆视频 | 黄色成年网站 | 日本久久久精品视频 | 精品夜夜嗨av一区二区三区 | 亚洲年轻女教师毛茸茸 | 丁香综合 | 国产黄色在线网站 | 天天操综合网 | 99热国产在线中文 | 国产视频69 | www.888.av| 欧美日韩一区二区三区在线免费观看 | 日女人电影 | av综合网址 | 日本h视频在线观看 | 久久大香线蕉app | 91pony九色丨交换 | 国产福利a | 精品久久久久久久久中文字幕 | av中文字幕在线免费观看 | 国产69精品久久久久久久久久 | 美女网站色免费 | 五月天综合网站 | 在线视频观看你懂的 | 日日夜夜91 | 久久精品第一页 | 在线看欧美 | 中文字幕欲求不满 | 国产精品久久久久久爽爽爽 | 天天摸天天操天天爽 | 欧美三级高清 | 99国产在线视频 | 久久成人国产精品免费软件 | 色多多在线观看 | 91视频-88av| 日本黄网站 | 99精品美女| 六月色婷 | 特黄特色特刺激视频免费播放 | a视频在线 | 美女视频免费精品 | 91av视频导航| 五月天伊人 | 福利视频导航网址 | 国产一级性生活 | 色诱亚洲精品久久久久久 | 精品国产一区二区三区日日嗨 | 久久艹人人 | 国产精品中文 | 四虎在线观看视频 | 国产亚洲成av人片在线观看桃 | 日日操日日干 | 波多野结衣电影一区二区三区 | 欧美性色网站 | 国产日韩一区在线 | 精品亚洲一区二区三区 | 9ⅰ精品久久久久久久久中文字幕 | 成人午夜剧场在线观看 | 黄网av在线 | 国产精品欧美久久久久天天影视 | 久久99精品国产一区二区三区 | 人人看人人爱 | 欧美日韩一级久久久久久免费看 | 麻豆视传媒官网免费观看 | 成年免费在线视频 | 97电影在线看视频 | 色网免费观看 | 国产一级黄大片 | 人人爽人人插 | 91免费看片黄 | 91伊人影院 | 一二三区视频在线 | 日韩高清一二三区 | 91精品亚洲影视在线观看 | 香蕉日日 | 日韩电影在线一区二区 | 国产黄色成人av | 韩国精品一区二区三区六区色诱 | 午夜精品99久久免费 | 中文资源在线官网 | 午夜精品一区二区三区视频免费看 | 手机在线中文字幕 | 免费精品在线 | 国产另类av | 亚洲资源片 | 久久久久久久亚洲精品 | 91九色国产蝌蚪 | 亚洲无人区小视频 | 66av99精品福利视频在线 | 视频在线99re| 久久久久久久国产精品影院 | 精品国产123| 97碰在线视频 | 欧美日韩中 | 久久精品国产免费 | www.com在线观看 | 色老板在线 | 国产视频1 | 精品在线观看一区二区 | 久草视频在线观 | 国产91国语对白在线 | 99久久99热这里只有精品 | 日本久久精 | 久久香蕉一区 | 欧美精品在线观看免费 | 精品91视频| 日韩黄色在线电影 | 99久久999久久久精玫瑰 | 亚洲成a人片77777潘金莲 | 91视频免费看网站 | 中文在线√天堂 | 中文网丁香综合网 | 最新超碰在线 | 日韩大陆欧美高清视频区 | 国产黄色大片 | 国产亚洲视频在线 | 欧美 日韩 视频 | 狠狠色丁香久久婷婷综合_中 | 在线中文字幕电影 | 国产中出在线观看 | 91精品1区 | 亚洲美女精品区人人人人 | 激情片av | 日本久久精品 | 久久一区二区三区四区 | 偷拍精品一区二区三区 | 日韩久久久久久久久 | 97香蕉久久国产在线观看 | 国产精品久久久久久久久久了 | 久久中文精品视频 | 中文字幕乱码亚洲精品一区 | 国产成人av一区二区三区在线观看 | 手机av在线网站 | 国产精品一区二区三区视频免费 | 99婷婷狠狠成为人免费视频 | 五月婷网站 | 婷婷色婷婷 | 色网av| 国产亚洲免费的视频看 | 久久久久久久久久久综合 | 三级小视频在线观看 | 丁香花在线视频观看免费 | 在线免费色视频 | 亚洲精品456在线播放第一页 | 香蕉久久久久久av成人 | 九九免费精品 | 国产精品99久久久久的智能播放 | 免费看黄网站在线 | 欧美日韩3p| 国产偷在线| 激情五月婷婷网 | 五月激情久久 | 麻豆91精品 | 日本黄色黄网站 | 国产精品午夜免费福利视频 | 人人dvd | 成年美女黄网站色大片免费看 | 精品久久久久亚洲 | 色婷婷伊人 | 91色综合 | 午夜在线免费观看视频 | 久久99精品一区二区三区三区 | 天天色天天射天天操 | 精品国偷自产在线 | 中文字幕在线播放一区二区 | 精品成人在线 | 免费中文字幕 | 国产精品视频地址 | 伊人成人精品 | 久久激情日本aⅴ | 最近2019年日本中文免费字幕 | 在线观看电影av | 欧美成人h版 | 香蕉视频国产在线 | 日韩欧美国产视频 | 久久精品这里热有精品 | 国产精品久久久久久av | 免费av片在线| 最新日韩在线观看视频 | 黄色片网站大全 | 色综合网在线 | 天天艹天天爽 | 色视频国产直接看 | 久久精品视频免费 | 亚洲电影网站 | 国产原创av在线 | 日韩精品在线播放 | 婷婷四房综合激情五月 | 超碰人人在 | 日韩精品亚洲专区在线观看 | 天天综合天天综合 | 日本视频久久久 | 97在线视频免费看 | 99精品国产福利在线观看免费 | 欧美国产日韩一区二区三区 | 1区2区视频| 国产国产人免费人成免费视频 | 免费看国产a | 色视频在线免费观看 | 国模精品一区二区三区 | 丁香av| 色婷婷色| 一级特黄av | 在线观看av大片 | 欧美色伊人 | 久久免费a| 久久草在线视频国产 | 久久高清视频免费 | 久久99久久99精品免观看软件 | 手机在线永久免费观看av片 | 中文字幕中文字幕在线中文字幕三区 | 久久成人资源 | 91麻豆精品国产91久久久无限制版 | 特级黄色视频毛片 | 在线只有精品 | 日韩免费中文 | 国产午夜三级一区二区三 | 国产小视频免费在线网址 | 99热最新地址| 久久99亚洲网美利坚合众国 | 丁香六月伊人 | 天堂av网在线 | 高清免费在线视频 | 精品二区久久 | 国产精品久久久久久久久久久久午 | 人人爽久久涩噜噜噜网站 | 日本亚洲国产 | 欧美日韩精品在线观看视频 | 就操操久久 | 国产一区二区在线观看视频 | 天天曰 | 4438全国亚洲精品观看视频 | 美腿丝袜一区二区三区 | 久久 地址 | 国产精品久久久久久久久久东京 | 欧美日韩在线免费观看视频 | 国产一二三在线视频 | 成人黄色小说视频 | 91av在线电影 | 国产高清在线观看av | 日韩精品一卡 | 免费看十八岁美女 | www好男人| 国产黄影院色大全免费 | 日韩性色| 免费在线观看国产精品 | 黄色一级网 | 97国产| 免费视频一级片 | 97日日碰人人模人人澡分享吧 | 国产精品久久久电影 | 激情五月婷婷激情 | 91精品夜夜 | 久久精品影片 | 成人免费影院 | 草久草久 | 91精品国产99久久久久久红楼 | 日韩免费三区 | 久久午夜电影网 | 久久夜色精品国产欧美乱 | 久久专区 | 美女福利视频 | 久久九九网站 | 91成人国产 | 九九交易行官网 | 免费影视大全推荐 | 日韩二区在线观看 | 久久99精品视频 | 日本精品视频在线 | 婷婷精品在线 | 麻花豆传媒mv在线观看网站 | 91亚洲精品国偷拍 | 麻豆免费看片 | 99999精品 | 欧美成年人在线视频 | 久久夜色精品国产欧美一区麻豆 | 亚洲理论视频 | 天天艹天天 | 日韩黄色大片在线观看 | 日韩成人在线一区二区 | 久久国产免 | 婷婷精品在线视频 | 欧美一区二区在线免费看 | 97成人免费 | 欧美成a人片在线观看久 | 天天激情 | 中文字幕在线视频国产 | 免费亚洲精品视频 | 手机在线看永久av片免费 | 一级片免费在线 | av在线一二三区 | 99成人精品 | 国产精品理论在线观看 | 成人久久久电影 | 九九久久久 | 波多野结衣一区三区 | 天堂av在线中文在线 | 欧美精品资源 | 国产系列 在线观看 | 国产又粗又硬又爽的视频 | 激情五月伊人 | 成年人在线免费看视频 | 欧洲精品久久久久毛片完整版 | 日日碰狠狠躁久久躁综合网 | 国产免费又黄又爽 | 成 人 黄 色 视频播放1 | 免费99精品国产自在在线 | 伊人五月天 | 国产精品国产三级国产aⅴ无密码 | 免费在线精品视频 | 91你懂的 | 激情婷婷综合 | 精品999久久久 | 999久久久久久久久6666 | 国产成人一区二区三区 | 免费黄色在线网站 | 成年人视频免费在线 | 91精品婷婷国产综合久久蝌蚪 | 日韩av免费大片 | 在线免费观看黄色大片 | 99久久er热在这里只有精品15 | 久久亚洲免费视频 | 国产一级h | 97在线成人 | 国产成人一区二区三区影院在线 | 日韩影视在线观看 | 欧美日韩啪啪 | 一本到视频在线观看 | 精品久久久久一区二区国产 | 国产视频1 | 久热免费在线 | 欧美性生活免费看 | 久久国产精品免费一区二区三区 | 国产午夜精品一区 | 狠狠色狠狠色终合网 | 日韩一区二区免费在线观看 | 激情动态| 国产成人一区二区三区久久精品 | 91污污视频在线观看 | 日日夜夜精品免费视频 | 欧美成人一二区 | 成人永久视频 | 狠狠操精品| 五月天亚洲综合 | 日韩一级成人av | 中文字幕刺激在线 | 亚洲电影黄色 | 欧美日韩网址 | 欧美极品少妇xbxb性爽爽视频 | 久久精品三 | 国产r级在线观看 | 中文字幕视频在线播放 | 欧美日韩在线观看一区二区 | 国产 日韩 欧美 自拍 | 欧美日韩aa | 国产午夜麻豆影院在线观看 | 看毛片的网址 | 麻豆精品传媒视频 | 国产精品久久在线 | 综合色站 | 中文亚洲欧美日韩 | 亚洲精品久久激情国产片 | 福利一区二区三区四区 | 日韩在线免费视频 | 韩国av免费看 | 亚洲一级国产 | 免费在线播放视频 | 精品一区二区在线观看 | 日本最新中文字幕 | 免费观看9x视频网站在线观看 | 麻豆成人精品 | 久久电影日韩 | 8x8x在线观看视频 | 中文超碰字幕 | 狠狠操天天射 | 久久国产视屏 | 人人澡人人草 | 日韩精品免费一线在线观看 | 日韩,精品电影 | 国产美女精品人人做人人爽 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 在线黄色免费 | 99性视频 | 最近免费中文字幕mv在线视频3 | 久久国产精品偷 | 狠狠激情中文字幕 | 欧美一级性 | 91x色 | 色视频在线观看 | 在线观看免费观看在线91 | 亚洲精品成人av在线 | 一区二区视频电影在线观看 | 在线91av | 久久在线看| 欧美综合色| 国产精品美女免费视频 | 日韩欧美视频在线播放 | 久草在线播放视频 | 97国产超碰 | 中文字幕91在线 | 精品在线亚洲视频 | 国产亚洲欧美在线视频 | 干 操 插| 中文资源在线观看 | 国产一区欧美一区 | 特黄一级毛片 | 国产精品久久艹 | 九九爱免费视频 | 日韩综合色 | 精品一区二区久久久久久久网站 | 亚洲综合日韩在线 | 久久久久欧美精品999 | 永久免费的av电影 | 精品一区二区精品 | 99国产情侣在线播放 | 精品视频国产 | 999久久久免费精品国产 | 中文字幕有码在线观看 | 狠狠躁日日躁狂躁夜夜躁 | 日韩免费av在线 | 亚洲一区二区黄色 | 亚洲国产精彩中文乱码av | 日批视频| 精品毛片一区二区免费看 | 免费一级片视频 | 久久视频国产精品免费视频在线 | 一本一本久久a久久精品综合小说 | 天天草天天干天天 | 免费av在线网站 | 国产精品一区二区视频 | 九热在线 | 一级黄色av | 97天堂网 | 精品久久久久久久久久久久久久久久 | 四虎国产精品免费 | 久草av在线播放 | 国产婷婷视频在线 | 亚洲精品日韩一区二区电影 | 久久综合国产伦精品免费 | 91热视频| 最近中文字幕完整高清 | 国产精品美女久久久久久免费 | 欧美在线观看视频一区二区三区 | 久亚洲 | 久久久国产精品一区二区中文 | 久久久久成 | 国产日本亚洲高清 | 最新国产精品视频 | 免费99精品国产自在在线 | 国产精品av电影 | 91成年视频 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久国产精品99国产精 | 日韩精品久久久久久中文字幕8 | 97超碰伊人 | 国产夫妻自拍av | 国产精品一区二区无线 | 国产成人精品一区二区三区在线 | 激情综合站 | 国产高清黄色 | 国产免费视频在线 | 日本性高潮视频 | 日韩av手机在线观看 | 这里有精品在线视频 | 麻豆va一区二区三区久久浪 | aⅴ精品av导航 | 精品成人久久 | 国产成人一区二区啪在线观看 | 黄色高清视频在线观看 | 天天操天天干天天操天天干 | 亚洲第一av在线 | 日韩三级精品 | 日韩av不卡播放 | 一区二区三区不卡在线 | 视频一区二区在线 | 亚洲人人爱 | 狠狠色狠狠色合久久伊人 | 国产成人av综合色 | 久久精品这里都是精品 | 999在线精品 | 国产精品久久久久一区二区三区共 | 伊人永久在线 | 久久免费激情视频 | 911国产在线观看 | 免费视频一二三 | 成人a视频| 黄污视频大全 | 午夜精品导航 | 美女视频一区二区 | 欧美日韩不卡在线视频 | 久久婷婷国产 | 在线观看中文字幕2021 | 黄色.com| 欧美日韩免费一区二区 | 国产午夜三级一区二区三 | 99久久日韩精品免费热麻豆美女 | 欧美精品久久久久a | 国产一区二区在线影院 | 欧美日韩中文在线观看 | 国产女v资源在线观看 | 亚洲h在线播放在线观看h | 91在线小视频 | 中文字幕二区在线观看 | 国产午夜三级一区二区三 | av在线免费播放网站 | 国产亚洲免费观看 | 成人毛片在线观看 | www.色午夜 | 麻豆传媒电影在线观看 | 99精品国产99久久久久久福利 | 日韩黄色免费电影 | 精品久久久影院 | 天天操天天摸天天爽 | 狠狠综合久久 | 亚洲区精品 | 在线观看国产日韩欧美 | 亚洲国产综合在线 | 黄色三级久久 | 国产精品观看在线亚洲人成网 | 久操操| 超碰公开在线观看 | 成人黄在线观看 | 色综合小说 | 久草在线视频在线观看 | 免费看在线看www777 | 久亚洲精品 | 精品亚洲va在线va天堂资源站 | 欧美网站黄色 | 天天射综合网站 | 亚洲免费精品视频 | 国产免费视频在线 | 黄色av一区二区三区 | 九九爱免费视频在线观看 | 九九九九精品 | 免费国产在线观看 | 国产精品一区二区三区在线免费观看 | 激情网在线视频 | 92精品国产成人观看免费 | 国产不卡在线观看 | 激情开心站 | 伊人狠狠色丁香婷婷综合 | 亚洲精品国内 | 久久久香蕉视频 | 成人在线视频在线观看 | 久久久精品福利视频 | 成人在线电影观看 | 日韩精品免费一区 | 国产精品日韩在线播放 | 91九色成人 | 亚洲视频电影在线 | 婷婷午夜激情 | 精品亚洲视频在线 | 亚洲毛片一区二区三区 | 久久久久国产精品免费网站 | 亚洲狠狠婷婷综合久久久 | 欧洲在线免费视频 | 亚洲人av免费网站 | 中文字幕在线观看日本 | 毛片网站在线观看 | 国产亚洲精品久久网站 | 美女性爽视频国产免费app | 欧美黄色免费 | 蜜臀av麻豆 | 久久在线看 | 亚洲国产欧美在线看片xxoo | 福利电影久久 | 麻豆久久精品 | 狠狠色综合欧美激情 | 日韩欧美大片免费观看 | 色综合天天 | 天天天干天天射天天天操 | 日韩免费观看一区二区三区 | 日本xxxx.com| 久久久国产影视 | 国产色拍 | 国产视频色 | 国产免费又黄又爽 | 激情伊人五月天久久综合 | 国产韩国日本高清视频 | 黄色av一级 | 日韩黄色免费 | 国产高清在线永久 | 丝袜美女视频网站 | 精品久久久久久久久中文字幕 | 四虎www| 亚洲国产精品久久久久婷婷884 | 国产视频69 | 婷婷av色综合 | 国产99久久九九精品免费 | 免费黄色激情视频 | 久久99国产精品视频 | 久久久久免费精品 | 国产裸体无遮挡 | 精品一二三区 | 久草在线| 日韩专区在线观看 | 国产一区二区高清不卡 | 911久久| 国产精品日韩久久久久 | 免费看黄视频 | 99这里只有 | 五月天堂网 | 国产精品3 | 久久久伦理| 亚洲天堂网在线观看视频 | 成人91av| 天天干天天天天 | 久久综合九色综合网站 |