精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網(wǎng)

17站長網(wǎng) 首頁 網(wǎng)站 服務(wù)器 查看內(nèi)容

nginx http模塊數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)小結(jié)

2022-10-17 13:26| 查看: 1528 |來源: 互聯(lián)網(wǎng)

從本節(jié)開始,我們將進(jìn)入http模塊實(shí)現(xiàn)原理的講解,關(guān)于http模塊,有一個(gè)非常重要的點(diǎn)就是其是如何存儲(chǔ)http塊、server塊和location塊的數(shù)據(jù)的,而且nginx有的配置 ...

從本節(jié)開始,我們將進(jìn)入http模塊實(shí)現(xiàn)原理的講解,關(guān)于http模塊,有一個(gè)非常重要的點(diǎn)就是其是如何存儲(chǔ)http塊、server塊和location塊的數(shù)據(jù)的,而且nginx有的配置項(xiàng)是可以在多個(gè)配置塊中使用的,當(dāng)http塊、server塊和location塊中兩個(gè)或者兩個(gè)以上的配置塊都配置了該配置項(xiàng)的時(shí)候,就會(huì)有一個(gè)問題是,nginx是如何處理這些配置項(xiàng)的。本文主要講解http塊中的各個(gè)模塊數(shù)據(jù)的存儲(chǔ)方式,這將是理解nginx的http模塊的工作方式的重要基石。

1. 核心模塊的存儲(chǔ)方式

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

這里標(biāo)注的events和http只是為了展示方便而添加的,本質(zhì)上這個(gè)數(shù)組的元素的類型是void*的指針,至于該指針指向的具體結(jié)構(gòu)體的類型,則是根據(jù)各個(gè)核心模塊自身的定義來的。

在http模塊下,其指向了一個(gè)ngx_http_conf_ctx_t類型的結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體的作用就是用來存儲(chǔ)http配置塊中各個(gè)配置項(xiàng)的數(shù)據(jù)的。如下是這個(gè)結(jié)構(gòu)體的定義:

typedef struct { // 存儲(chǔ)MAIN級(jí)別配置  void **main_conf; // 存儲(chǔ)SRV級(jí)別配置  void **srv_conf; // 存儲(chǔ)LOC級(jí)別配置  void **loc_conf; } ngx_http_conf_ctx_t;

我們知道,在nginx.conf配置文件中,在http塊下還配置有server塊,而server塊下也是可以有l(wèi)ocation塊,更有甚者,在location塊下可以有子location塊,如此往復(fù),而這里的ngx_http_conf_ctx_t結(jié)構(gòu)體的作用就是存儲(chǔ)所有的這些配置所對(duì)應(yīng)的結(jié)構(gòu)體數(shù)據(jù)。首先,我們需要明確的一點(diǎn)是,在nginx.conf配置文件中,配置項(xiàng)都是由一個(gè)個(gè)模塊定義的,一個(gè)模塊可以定義多個(gè)配置項(xiàng),對(duì)于這些配置項(xiàng)的解析工作都是由這個(gè)模塊所定義的方法進(jìn)行的。但是,一般的,一個(gè)模塊一般都只會(huì)定義一個(gè)結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體中的各個(gè)屬性則對(duì)應(yīng)于該模塊所定義的各個(gè)配置項(xiàng)的數(shù)據(jù),也就是說,通過各個(gè)模塊所定義的方法,其會(huì)將其所定義的配置項(xiàng)對(duì)應(yīng)的配置轉(zhuǎn)換為該模塊所定義的結(jié)構(gòu)體。這里所說的結(jié)構(gòu)體就對(duì)應(yīng)于上面的main_conf、srv_conf和loc_conf中的配置。從上面的定義就可以看出,這三個(gè)屬性的類型都是指針類型的數(shù)組,而數(shù)組的長度就對(duì)應(yīng)于模塊的個(gè)數(shù),準(zhǔn)確來講,是對(duì)應(yīng)于http模塊的各個(gè)。在解析各個(gè)http模塊的配置之前,nginx會(huì)對(duì)各個(gè)http模塊在當(dāng)前類型的模塊(http模塊)中進(jìn)行相對(duì)位置進(jìn)行標(biāo)記,每個(gè)http模塊的相對(duì)位置就對(duì)應(yīng)于上面的三個(gè)屬性的數(shù)組下標(biāo)。前面已經(jīng)講到,每個(gè)http模塊都只會(huì)有一個(gè)配置結(jié)構(gòu)體存儲(chǔ)該模塊所定義的所有配置數(shù)據(jù),而這些配置結(jié)構(gòu)體就是存儲(chǔ)在上面的三個(gè)數(shù)組中的。這樣,我們就能夠理解了,其實(shí)上面的結(jié)構(gòu)體的三個(gè)屬性,每一個(gè)屬性的數(shù)組都對(duì)應(yīng)了一個(gè)http模塊的配置結(jié)構(gòu)體。

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

{
 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、listen和root三個(gè)指令為例,這三個(gè)指令都是ngx_http_core_module模塊定義的配置項(xiàng),但是它們存儲(chǔ)的位置則是完全不同的。我們需要注意的就是每個(gè)指令的第四個(gè)屬性的定義:NGX_HTTP_MAIN_CONF_OFFSET 、NGX_HTTP_SRV_CONF_OFFSET 和 NGX_HTTP_LOC_CONF_OFFSET。這三個(gè)類型的定義有兩重含義,一個(gè)是表示這個(gè)配置項(xiàng)是僅用于http塊,還是可以用于http塊和server塊,再或者是可以用于http塊、server塊和location塊;另一重含義是定義了這個(gè)配置項(xiàng)在上面講的ngx_http_conf_ctx_t中的偏移量,所謂的偏移量指的就是,在知道 ngx_http_conf_ctx_t結(jié)構(gòu)體對(duì)象的指針地址時(shí),通過這里的偏移量就可以計(jì)算出當(dāng)前配置項(xiàng)所存儲(chǔ)的數(shù)組。這里我們就需要展示一段代碼,即在ngx_conf_parse()方法中,其主要是用于解析nginx.conf配置文件的,在解析了某個(gè)配置項(xiàng)之后,就會(huì)在所有的模塊中,找到該配置項(xiàng)的定義,如果找到了配置項(xiàng),就會(huì)嘗試獲取存儲(chǔ)該配置項(xiàng)所對(duì)應(yīng)的結(jié)構(gòu)體,并且會(huì)調(diào)用該配置項(xiàng)指定的方法進(jìn)行配置項(xiàng)數(shù)據(jù)的解析。這里嘗試獲取該配置項(xiàng)所對(duì)應(yīng)的結(jié)構(gòu)體時(shí),就需要用上上面的偏移量。如下是獲取該配置項(xiàng)的方法:

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

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

 // 除開core模塊,其他類型的模塊都會(huì)使用第三種配置尋址方式,也就是根據(jù)cmd->conf的值
 // 從cf->ctx中取出對(duì)應(yīng)的配置。舉http模塊為例,cf->conf的可選值是NGX_HTTP_MAIN_CONF_OFFSET、
 // NGX_HTTP_SRV_CONF_OFFSET、NGX_HTTP_LOC_CONF_OFFSET,
 // 分別對(duì)應(yīng)“http{}”、“server{}”、“l(fā)ocation{}”這三個(gè)http配置級(jí)別。

 // 這個(gè)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,
 // 其實(shí)這里就是在計(jì)算當(dāng)前的配置對(duì)象是存儲(chǔ)在這三個(gè)數(shù)組中的哪一個(gè)數(shù)組中,以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,則說明其是存儲(chǔ)在loc_conf數(shù)組中的,
 // 而該數(shù)組中的元素類型為ngx_http_core_loc_conf_t,因而可以看到,后面ngx_command_t
 // 中offset屬性的值就指定為了offsetof(ngx_http_core_loc_conf_t, default_type),
 // 這就是在計(jì)算default_type屬性在ngx_http_core_loc_conf_t結(jié)構(gòu)體中的位置。
 // 通過下面的if判斷第一步confp = *(void **) ((char *) cf->ctx + cmd->conf);,就可以
 // 計(jì)算出當(dāng)前所使用的結(jié)構(gòu)體是在main_conf、srv_conf
 // 和loc_conf的哪一個(gè)數(shù)組中,而通過第二步conf = confp[cf->cycle->modules[i]->ctx_index];
 // 的計(jì)算,就可以計(jì)算出該結(jié)構(gòu)體在數(shù)組中的具體位置,并且獲取該結(jié)構(gòu)體數(shù)據(jù)。
 // 需要注意的是,這種計(jì)算方式只適用于http模塊的配置項(xiàng)獲取,因?yàn)橹挥衕ttp模塊的配置結(jié)構(gòu)體是
 // 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];
 }
}

這里我們需要重點(diǎn)關(guān)注最后一個(gè)else if分支,這里就表明了http模塊是如何根據(jù)配置項(xiàng)的定義來計(jì)算該配置項(xiàng)所對(duì)應(yīng)的結(jié)構(gòu)體的存儲(chǔ)位置的。下面的圖就展示了包含有http塊配置的整體結(jié)構(gòu):

2. server塊的存儲(chǔ)方式

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

這個(gè)圖稍微看起來有點(diǎn)復(fù)雜,但實(shí)際上并不復(fù)雜,按照配置塊劃分,上面的ngx_http_conf_ctx_t中存儲(chǔ)的就是http塊的配置,而下面的兩個(gè) ngx_http_conf_ctx_t存儲(chǔ)的就是兩個(gè)server塊中的配置,中間的引用過程是通過http塊的ngx_http_core_module模塊對(duì)應(yīng)的ngx_http_core_main_conf_t.servers進(jìn)行的。需要注意的一點(diǎn)是,上面的server塊的配置中,main_conf指針都是指向的http塊的對(duì)應(yīng)ngx_http_conf_ctx_t的main_conf屬性。

3. location塊的存儲(chǔ)方式

對(duì)于location塊的存儲(chǔ),其存儲(chǔ)結(jié)構(gòu)也還是ngx_http_conf_ctx_t ,并且由于當(dāng)前配置項(xiàng)在location塊中的,因而其類型一定不會(huì)是 NGX_HTTP_MAIN_CONF_OFFSET和NGX_HTTP_SRV_CONF_OFFSET ,也就是說,解析location配置項(xiàng)得到的數(shù)據(jù)一定是存儲(chǔ)在loc_conf數(shù)組中的。因而,與server塊一樣,location塊對(duì)應(yīng)的ngx_http_conf_ctx_t結(jié)構(gòu)體中的main_conf和srv_conf指向的則是當(dāng)前l(fā)ocation所在的http塊的main_conf和所在的server塊的 srv_conf數(shù)組。

另外,一個(gè)server塊下會(huì)有多個(gè)location塊,在存儲(chǔ)結(jié)構(gòu)上,這些location塊是以隊(duì)列的方式進(jìn)行組織的,與server塊類似,這個(gè)隊(duì)列則是存儲(chǔ)在其所在的server塊對(duì)應(yīng)的ngx_http_conf_ctx_t的loc_conf[0]中的。這里的loc_conf[0]的結(jié)構(gòu)體類型為ngx_http_core_loc_conf_s,其有一個(gè)ngx_queue_t類型的屬性 locations 就是該location隊(duì)列。最后需要注意的是,這里的locations屬性表征的不僅僅只是server塊下的多個(gè)location塊,因?yàn)樵趌ocation配置塊下還可以繼續(xù)配置多個(gè)location塊,如此不斷遞歸下去。這些子location塊的類型其實(shí)還是ngx_http_core_loc_conf_s,因而也是可以通過locations屬性進(jìn)行表征的。如下是加入location配置塊的結(jié)構(gòu)體示意圖:

圖中展示了兩個(gè)location并列組織的情形,其main_conf和srv_conf分別指向了http塊的main_conf和當(dāng)前l(fā)ocation塊所在的server塊的srv_conf,并且兩個(gè)location塊對(duì)應(yīng)的結(jié)構(gòu)體是以隊(duì)列的方式組織在ngx_http_core_loc_conf_t中的。

4. 小結(jié)

本文從ngx_cycle_t結(jié)構(gòu)體開始,介紹了http塊的配置項(xiàng)是如何存儲(chǔ)在ngx_cycle_t中的,并且依次介紹了http塊、server塊和location塊的存儲(chǔ)方式,以及相互之間的組織方式。

以上nginx http模塊數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)小結(jié)就是小編為大家收集整理的全部內(nèi)容了,希望對(duì)大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續(xù)關(guān)注我們的后續(xù)更新。

本文最后更新于 2022-10-17 13:26,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請?jiān)诰W(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號(hào):w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

  • 當(dāng)我們在共享網(wǎng)絡(luò)訪問的時(shí)候,可能會(huì)遇到提示指定的網(wǎng)絡(luò)名不再可用的問題,這可能是由于我們的共享網(wǎng)絡(luò)出現(xiàn)了錯(cuò)誤,也可能是被共享的對(duì)象所拒絕了。指定的網(wǎng)絡(luò)名 ......

    故障排除 2023-03-10
  • 1、首先進(jìn)入到“百度”軟件中, 2、然后在其中輸入“百度識(shí)圖”, 3、之后點(diǎn)擊圖中的“開始使用”按鈕, 4、緊接著點(diǎn)擊右下角的“相冊”功能, 5、在相冊下 ......

    軟件教程 2023-02-17
  •   文/曹楊  原標(biāo)題:誰還看電視?  爸爸戴一副老花鏡,媽媽戴一副近視鏡,一人坐在沙發(fā),一人躺在床上,各自刷著自己關(guān)注的博主更新的短視頻。電視也許開著,但只是背景。  這樣的畫面,幾乎成了洛奇家的常 ...

    站長 2020-12-09
  • 一、軟件沖突1、首先確認(rèn)是否是應(yīng)用程序沖突導(dǎo)致的。2、查看是否只有特定幾個(gè)游戲或應(yīng)用會(huì)導(dǎo)致該問題。3、如果是應(yīng)用沖突,那么只要卸載這些app就可以解決了。二 ......

    軟件教程 2022-12-27
  • 圖片來源于簡書  文/郭開森 楊帆  陸玖財(cái)經(jīng)準(zhǔn)備開新欄目了,每周一創(chuàng)始人郭開森和楊帆合體郭德帆,對(duì)行業(yè)進(jìn)行一些觀察和評(píng)論,第一篇我們?nèi)允谴蛩銓懮鐓^(qū)團(tuán)購,這是當(dāng)下最火的話題。  來過陸玖財(cái)經(jīng)做客的朋友們...

    熱議 2020-12-07
  • 電腦端:1、大家可以點(diǎn)擊右邊鏈接進(jìn)入網(wǎng)頁版的百度網(wǎng)盤,進(jìn)入之后點(diǎn)擊“去登錄”。https://pan.baidu.com/2、之后正確的輸入賬號(hào)密碼進(jìn)行登錄就好啦。手機(jī)端:1 ......

    軟件教程 2022-12-27
  • 一、N100對(duì)比intel i3 1、N100的跑分達(dá)到了147210分,這個(gè)數(shù)據(jù)可以達(dá)到i3的七代級(jí)別。 2、在跑分上也是超越了大部分的I3七代CPU,不過比I3八代要弱勢一些。 3 ......

    硬件知識(shí) 2023-04-26
  • 8月15日消息 上周,有媒體報(bào)道前身為百度圖片的“榴蓮”APP含有大量不雅視頻內(nèi)容被用戶舉報(bào)。對(duì)此,百度圖片官方進(jìn)行了回應(yīng),百度圖片表示已經(jīng)對(duì)報(bào)道中所涉及的“生吃旋風(fēng)哥”等爭議內(nèi)容進(jìn)行了下線處理。 此外,百度...

    站長 2016-08-15
  • 在填寫一些項(xiàng)目申請書中,總是免不了要選擇一些數(shù)字,但是在方框中如何插入數(shù)字,該怎么辦呢?那么下面就由學(xué)習(xí)啦小編給大家分享下word在方框里輸入數(shù)字的技巧, ......

    Word教程 2023-04-27
  • WPS Office手機(jī)版怎么加橫線?很多用戶還不知道WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么打橫線,WPS Office手機(jī)版怎么弄 ......

    WPS教程 2023-03-31
  • 迅雷前綴是什么 答:迅雷前綴是(magnet:?xt=urn:btih:)括號(hào)里的就是了。 我們只要在這段文字之后輸入后續(xù)的內(nèi)容,就可以創(chuàng)建下載鏈接了。 1、磁力鏈接不基于文 ......

    軟件教程 2023-06-03
  • 一、內(nèi)容特權(quán)。 1、半價(jià)點(diǎn)播。 許多站內(nèi)視頻都需要付費(fèi)觀看,而大會(huì)員用戶可以直接半價(jià)享受; 購買成功后的48h內(nèi)無限次觀看。有部分的內(nèi)容是只限在中國大陸內(nèi)觀 ......

    軟件教程 2023-05-05
  • 1、首先打開小米運(yùn)動(dòng)的“實(shí)驗(yàn)室功能”。 2、接著點(diǎn)擊“門卡模擬”。 3、然后點(diǎn)擊“我知道了”。 4、最后貼近就可以刷卡成功了。...

    硬件知識(shí) 2023-05-17
  • 1、打開手機(jī)輕顏相機(jī)app,點(diǎn)擊“我的”,點(diǎn)擊“設(shè)置”,2、點(diǎn)擊“幫助與反饋”,3、點(diǎn)擊右下角“在線咨詢”即可聯(lián)系客服,詢問自己的問題啦!...

    軟件教程 2023-03-16
  • 答:華為P系列: 華為p40,華為p40plus,華為p50,華為p50e,華為p60 華為mate系列: 華為mate40,華為mate50,華為mate50e,華為mate60 華為nova系列: 華為n ......

    鴻蒙系統(tǒng) 2023-04-24
  • 近期有用戶反映,電腦在更新Windows 11 Insider Preview 25252.1000后,出現(xiàn)了應(yīng)用和已壓縮的文件點(diǎn)擊毫無反應(yīng),拖拽都不行,只能從開始菜單打開的情況,這是怎 ......

    windows11 2022-12-13
  • 可見單元格就是不包括隱藏或者篩選篩選后隱藏起來的單元格區(qū)域。方法:篩選或隱藏?cái)?shù)據(jù),復(fù)制需要粘貼的值,在目標(biāo)單元格區(qū)域左上角的第一個(gè)單元格處右擊,選擇【 ......

    WPS教程 2022-12-10
  • 答:驍龍8+更好。 驍龍7+gen2實(shí)際上就是驍龍8+的低配版本。 在一些其他的核心架構(gòu)方面都是保持一致的,比如說CPU的架構(gòu)、GPU的架構(gòu)等等。 驍龍7+和驍龍8+具體 ......

    硬件知識(shí) 2023-04-06
  •   文/黎明  一場針對(duì)中國互聯(lián)網(wǎng)巨頭的反壟斷風(fēng)暴正在醞釀,而且這次動(dòng)真格了。  11月10日,國家市場監(jiān)管總局發(fā)布《關(guān)于平臺(tái)經(jīng)濟(jì)領(lǐng)域的反壟斷指南(征求意見稿)》,要加大對(duì)互聯(lián)網(wǎng)巨頭涉嫌壟斷的調(diào)查和監(jiān)管。 ...

    熱議 2020-11-14
  • 文件被win10系統(tǒng)誤報(bào)病毒自動(dòng)刪除了如何進(jìn)行恢復(fù)?有用戶下載了某些破解軟件卻被Win10系統(tǒng)誤認(rèn)為是病毒文件而自動(dòng)刪除,當(dāng)然系統(tǒng)自帶殺毒軟件其實(shí)挺不錯(cuò)的,就是有時(shí)候會(huì)誤報(bào),大家遇到這種情況的時(shí)候就希望把誤刪的...

    windows10 2022-11-20
  • win11系統(tǒng)如何釋放掉系統(tǒng)默認(rèn)保留的存儲(chǔ)空間?一般情況下,Windows會(huì)保留一些存儲(chǔ)空間,以便設(shè)備獲得良好性能和成功更新。但是當(dāng)出現(xiàn)系統(tǒng)盤儲(chǔ)存空間不足時(shí),我們會(huì)將幾個(gè)G的保留空間釋放出來,以解燃眉之急。本期教...

    windows11 2022-11-17
  • 1、先打開機(jī)頂盒進(jìn)入主界面,并且使用遙控器打開設(shè)置。 2、然后選擇“賬號(hào)與安全”,并且進(jìn)入。 3、最后往下面翻就可以看到“ADB調(diào)試”的選項(xiàng),直接開啟就行了 ......

    軟件教程 2023-06-01
  • 答:在3DMark壓力測試當(dāng)中,顯卡需要超高97%才能夠算合格,證明顯卡的穩(wěn)定性是過關(guān)的。 1、一般的默認(rèn)情況下在2500~3000分就算很正常的了。 2、分?jǐn)?shù)越高說明顯卡 ......

    軟件教程 2023-06-01
  • 羅技g304dpi燈顏色代表什么:1、藍(lán)色:這種情況是正常工作的顯示,如果說是常亮或者閃爍,那都沒有問題這是在正常工作呢。2、紅色:如果說是紅燈閃爍的話那就是 ......

    硬件知識(shí) 2023-03-16
  • 我們經(jīng)常用WPS的時(shí)候,如果需要輸入波浪號(hào)~,會(huì)發(fā)現(xiàn)鍵盤上的波浪號(hào)輸入之后在最上面,但是為了美觀,我們希望波浪號(hào)顯示在中間。這里總結(jié)了三個(gè)方法分享給大家 ......

    WPS教程 2023-02-18
  • win11系統(tǒng)快速跳過聯(lián)網(wǎng)創(chuàng)建本地管理賬戶3種方法?現(xiàn)在市面上銷售的品牌筆記本和臺(tái)式機(jī)基本上都預(yù)裝Windows11家庭中文版正版操作系統(tǒng),聯(lián)網(wǎng)后系統(tǒng)會(huì)自動(dòng)激活。當(dāng)用戶拿到新機(jī)器后還需要按照cortana(小娜)的提示一步...

    windows11 2022-11-13
  • 答:中高端水平 i513500hx在處理器當(dāng)中是處于一個(gè)中高端的水平。 i513500hx是第十一代酷睿處理器系列的一員,基礎(chǔ)頻率為2.4GHz,表現(xiàn)十分的不錯(cuò)。 i513500hx介 ......

    硬件知識(shí) 2023-04-27
  • 打開軟件,直接填寫就可以。 1、下載安裝easyconnect軟件, 2、打開easyconnect應(yīng)用,在如圖所示的“服務(wù)器地址”一欄輸入如圖所示網(wǎng)址,點(diǎn)擊“連接”, 3、等 ......

    軟件教程 2023-04-03
  • 相信有非常多使用過筆記本的用戶都聽說過獨(dú)顯直連這個(gè)詞,但很多用戶并不了解獨(dú)顯直連是什么,又有什么用處,那么下面就和小編一起來看看什么是獨(dú)顯直連和開啟這 ......

    其它 2022-12-15
  • win11系統(tǒng)開機(jī)總是自動(dòng)登錄OneDrive如何關(guān)閉?win11系統(tǒng)開機(jī)的時(shí)候,會(huì)自動(dòng)啟動(dòng)OneDrive,不想要啟動(dòng),該怎么操作呢?下面我們就來看看詳細(xì)的教程。 在OneDrive界面點(diǎn)小齒輪按鈕,下拉菜單中點(diǎn)【設(shè)置】。 單擊【...

    windows11 2022-11-15

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 免费黄色网址在线播放 | 亚洲瑟| 黄色免费在线观看 | 国产欧美亚洲精品第一页青草 | 美国一级片网站 | 国产亚洲精品久久久极品美女 | 日韩黄在线观看免费视频 | 日韩系列在线 | 精品999视频 | 欧美日韩精品一区二区三区视频播放 | 中文字幕曰韩一区二区不卡 | 日韩毛片欧美一级国产毛片 | 亚洲日本va在线观看 | 久久久亚洲欧洲日产国码606 | 日韩不卡| 中国特级黄色毛片 | 日韩啪啪网 | 国产色视频在线 | 成人日韩精品 | 欧美日韩国产高清一区二区三区 | 91精品麻豆 | 精品国产日韩一区三区 | 在线观看二区三区午夜 | 精品国产3p一区二区三区 | 麻豆国产成人精品午夜视频 | 欧美一区二区三区不卡免费观看 | 好黄好猛好爽好痛的视频 | 日本欧美不卡一区二区三区在线 | 啪啪网址免费网址 | 欧美韩国日本在线 | 国产在线观看91精品亚瑟 | 蜜桃视频成a人v在线 | 国产精品七七在线播放 | 国产小视频在线观看 | 美国a视频| 片免费观看网站视频 | 国产成人18黄网站免费 | 99ri国产在线观看 | 国产精品视频白浆免费视频 | 夜色福利久久久久久777777 | 国产成在线观看免费视频 |