nginx學(xué)習(xí)分享串講課件_第1頁(yè)
nginx學(xué)習(xí)分享串講課件_第2頁(yè)
nginx學(xué)習(xí)分享串講課件_第3頁(yè)
nginx學(xué)習(xí)分享串講課件_第4頁(yè)
nginx學(xué)習(xí)分享串講課件_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JDBnginx學(xué)習(xí)分享

串講人:劉豪偉2019年3月15日

Modestymakesoneprogress,pridemakesonelagbehind.JDBnginx學(xué)習(xí)分享串講人:劉豪偉20CONTENTS

123Nginx實(shí)現(xiàn)反向代理

Nginx實(shí)現(xiàn)頁(yè)面緩存

Nginx實(shí)現(xiàn)負(fù)載均衡

CONTENTS123Nginx實(shí)現(xiàn)反向代理Ngi01Nginx

做反向代理

01Nginx做反向代理正向代理與反向代理

現(xiàn)實(shí)生活中的例子

1、正向代理:訪問(wèn)

如上圖,因?yàn)槟壳癵oogle已被和諧,我們需要vpn才能科學(xué)訪問(wèn)

vpn對(duì)于“我們”來(lái)說(shuō),是可以感知到的(我們連接vpn),vpn對(duì)于”google服務(wù)器”來(lái)說(shuō),是不可感知的(google只知道有http請(qǐng)求過(guò)來(lái))。

對(duì)于人來(lái)說(shuō)可以感知到,但服務(wù)器感知不到的服務(wù)器,我們叫他正向代理服務(wù)器。

正向代理與反向代理現(xiàn)實(shí)生活中的例子1、正向代理:訪問(wèn)go正向代理與反向代理

現(xiàn)實(shí)生活中的例子

2、反向代理:通過(guò)反向代理實(shí)現(xiàn)負(fù)載均衡

總結(jié)

說(shuō)白了:“正向”、“反向”是相對(duì)于人的感知來(lái)說(shuō)的。人能感受到的代理就是正向代理,人感受不到的代理就是反向代理

如上圖,我們?cè)L問(wèn)的時(shí)候,百度有一個(gè)代理服務(wù)器,

通過(guò)這個(gè)代理服務(wù)器,可以做負(fù)載均衡,路由到不同的server。

此代理服務(wù)器,對(duì)于“我們”來(lái)說(shuō)是不可感知的(我們只能感知到訪問(wèn)的是百度的服務(wù)器,不知道中間還有代理服務(wù)器來(lái)做負(fù)載均衡)。

對(duì)于人來(lái)說(shuō)不可感知,但對(duì)于服務(wù)器來(lái)說(shuō)是可以感知的,我們叫他反向代理服務(wù)器。

正向代理與反向代理現(xiàn)實(shí)生活中的例子2、反向代理:通過(guò)反向nginx實(shí)現(xiàn)反向代理

nginx是高度模塊化的,各個(gè)功能都封裝在模塊中,而各個(gè)模塊的初始化則是根據(jù)配置文件來(lái)進(jìn)行的。

實(shí)現(xiàn)反向代理的模塊

模塊

:ngx_http_proxy_module指令:

proxy_pass:指定上游服務(wù)器的ip和端口

proxy_set_header:添加一個(gè)新的首部

指令語(yǔ)法

Syntax:proxy_passURL;Default:—

Context:location,ifinlocation,limit_except例子:proxy_pass96:8000;Syntax:proxy_set_headerfieldvalue;Default:proxy_set_headerHost$proxy_host;Context:http,server,location

nginx的配置中,可以使用變量

內(nèi)置變量:nginx自帶的

自定義變量:用戶定義的,定義方法:set變量名

變量值

演示配置

反向代理的例子

location/{

proxy_pass80;

proxy_set_headerX-Real-IP$remote_addr

proxy_set_headerHost$proxy_host;}

nginx實(shí)現(xiàn)反向代理nginx是高度模塊化的,各個(gè)功能都nginx實(shí)現(xiàn)反向代理

補(bǔ)充1location/admin{proxy_pass/;proxy_pass;}請(qǐng)求的url是/admin/a.html

如果代理方式是proxy_pass/;那么去的根目錄下找a.html

如果代理方式是proxy_pass;那么去的跟目錄下的admin找a.html補(bǔ)充2如果location中使用了模式匹配(正則),那么,location中的url會(huì)直接補(bǔ)充到代理節(jié)點(diǎn)的后面,此時(shí),上游服務(wù)器的的后面不能有任何內(nèi)容,包括/location~\.php${

proxy_pass;<<<正確寫(xiě)法

proxy_pass:80;<<<正確寫(xiě)法

proxy_pass/;<<<錯(cuò)誤寫(xiě)法

proxy_pass/img;<<<錯(cuò)誤寫(xiě)法

}此時(shí),如果請(qǐng)求的url是/book/stu/a.php,

就會(huì)代理成/book/stu/a.phpnginx實(shí)現(xiàn)反向代理補(bǔ)充1location/adminginx實(shí)現(xiàn)反向代理

補(bǔ)充3在location中如果有重定向的話,那么就用重定向后的uri替換掉代理節(jié)點(diǎn)中的urilocation/{rewrite/(.*)$/index.php?name=$1break;proxy_pass:80/img;}

此時(shí),如果請(qǐng)求的url是

/bajie,

就會(huì)代理成/index.php?name=bajie補(bǔ)充4rewrite語(yǔ)法:rewriteregex(表達(dá)式)replacement(替換項(xiàng))flag(標(biāo)志位)。

標(biāo)志位:break:

本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則

last:

相當(dāng)于apache里面的[L]標(biāo)記,表示rewrite,完成重寫(xiě)指令,之后搜索相應(yīng)的URI或locationpermanent:

返回301永久重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址

redirect:

返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址

nginx實(shí)現(xiàn)反向代理補(bǔ)充3在location中如果有重02Nginx

實(shí)現(xiàn)頁(yè)面緩存

02Nginx實(shí)現(xiàn)頁(yè)面緩存Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

Nginx緩存的基本思路:

利用請(qǐng)求的局部性原理,將請(qǐng)求過(guò)的內(nèi)容在本地建立一個(gè)副本,下次訪問(wèn)時(shí)不再連接到后端服務(wù)器,直接響應(yīng)本地內(nèi)容

Nginx服務(wù)器啟動(dòng)后,會(huì)對(duì)本地磁盤上的緩存文件進(jìn)行掃描,在內(nèi)存中建立緩存索引,并有專門的進(jìn)程對(duì)緩存文件進(jìn)行過(guò)期判斷、更新等進(jìn)行管理

緩存格式:key-value格式

key儲(chǔ)存在內(nèi)存中:就是將請(qǐng)求的urivalue儲(chǔ)存在磁盤上:就是緩存的數(shù)據(jù)

需要注意的是Nginx緩存需要結(jié)合反向代理一起才能實(shí)現(xiàn)

問(wèn)題

對(duì)于緩存,我們大概會(huì)有以下問(wèn)題:

(1)緩存文件放在哪兒?

(2)如何指定哪些請(qǐng)求被緩存?

(3)緩存的有效期是多久?

(4)過(guò)了有效期的數(shù)據(jù)是否還能使用?

(5)對(duì)于某些請(qǐng)求,是否可以不走緩存?

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字Nginx緩存的基Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(1)緩存文件放在哪兒?

設(shè)置緩存數(shù)據(jù)的相關(guān)信息

path:緩存目錄的位置

levels:指定使用幾級(jí)緩存目錄

keys_zone:指定緩存區(qū)域的名稱和緩存空間的大小

proxy_cache_path/data/nginx/cachelevels=1:2keys_zone=one:10m;

緩存結(jié)果:/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029cNgi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(1)緩存文件放在Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(2)如何指定哪些請(qǐng)求被緩存?

1.如果開(kāi)啟了緩存:nginx默認(rèn)會(huì)緩存所有g(shù)et和head方法的請(qǐng)求結(jié)果,緩存的key默認(rèn)使用請(qǐng)求字符串

2.指定哪些請(qǐng)求方法的請(qǐng)求被緩存

3.指定請(qǐng)求至少被發(fā)送了多少次以上時(shí)才緩存,可以防止低頻請(qǐng)求被緩存

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(2)如何指定哪些Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(3)緩存的有效期是多久?

proxy_cache_valid20030210m;定義了返回狀態(tài)碼是200和302的請(qǐng)求其數(shù)據(jù)緩存十分鐘

proxy_cache_validany1m;定義返回任何狀態(tài)碼的請(qǐng)求其數(shù)據(jù)都緩存1分鐘

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(3)緩存的有效期Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(4)過(guò)了有效期的數(shù)據(jù)是否還能使用?

哪種情況下可以使用過(guò)期的數(shù)據(jù)

error:上游服務(wù)器響應(yīng)error的時(shí)候

timeout:表示上游服務(wù)器響應(yīng)超時(shí)的時(shí)候

updating如果當(dāng)前正在更新,該參數(shù)允許使用陳舊的緩存響應(yīng)。

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(4)過(guò)了有效期的Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(5)對(duì)于某些請(qǐng)求,是否可以不走緩存?

哪種情況下可以不使用緩存

proxy_cache_bypass$cookie_nocache$arg_nocache$arg_comment;proxy_cache_bypass$http_pragma$http_authorization;如果任何一個(gè)字符串參數(shù)值不為空,或者不等于0,nginx就不會(huì)查找緩存,直接進(jìn)行代理轉(zhuǎn)發(fā)

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(5)對(duì)于某些請(qǐng)求Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

演示配置

http段:

proxy_cache_path/cache/nginxlevels=1:1keys_zone=mycache:100m;Server段:

proxy_cachemycache;proxy_cache_valid20030210m;proxy_cache_valid3011h;proxy_cache_validany1m;proxy_cache_use_staleerrortimeoutinvalid_headerupdatinghttp_500;}

擴(kuò)展:

如何檢查我所請(qǐng)求的數(shù)據(jù)是哪個(gè)主機(jī)發(fā)送給我的?

添加首部add_headerserverHost$server_addr;

如果檢查我所請(qǐng)求的數(shù)據(jù)在緩存中是否存在?

添加首部add_headercacheStatus$upstream_cache_status;Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字演示配置htt03Nginx實(shí)現(xiàn)負(fù)載均衡

03Nginx實(shí)現(xiàn)負(fù)載均衡Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字

nginx負(fù)載均衡是ngx_http_upstream_module模塊的功能,

需要在配置文件http塊上下文中定義upstream塊,

指定一組負(fù)載均衡的后端服務(wù)器,

然后在上面講到的proxy_pass中引用,

就可以反向代理時(shí)實(shí)現(xiàn)負(fù)載均衡了。

需要注意的是:ngx_http_upstream段要在server段前面,要定義在http段中。

要實(shí)現(xiàn)基本的負(fù)載均衡用到的指令很簡(jiǎn)單

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字nginx負(fù)載均衡Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字

指令:upstreamExample:

upstreambackend{serverweight=5;server:8080max_fails=3fail_timeout=30s;serverdown;server80backup;}

作用:定義一個(gè)上游服務(wù)器組

格式

upstreamname{

server上游服務(wù)器1參數(shù)

參數(shù);server上游服務(wù)器1參數(shù)

參數(shù);server上游服務(wù)器1參數(shù)

參數(shù);}

注意:

定義服務(wù)器組的時(shí)候,不能寫(xiě)http://fail_timeout:

在經(jīng)歷了max_fails次失敗后,

暫停服務(wù)的時(shí)間。

max_fails:和fail_timeout一起使用,

進(jìn)行對(duì)后端服務(wù)器的健康狀態(tài)檢查;

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字指令:upstrNgi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字

演示配置

http段:

upstreammyservers{server80weigjt=1;server81weight=2;}

Server段:

location/test{proxy_passhttp://myservers;}演示配置

http段:

upstreammyservers{ip_hash;server80weigjt=1;server81weight=2;}

Server段:

location/test{proxy_passhttp://myservers;}

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字演示配置httNgi點(diǎn)nx擊實(shí)添現(xiàn)加負(fù)標(biāo)載題均文衡字

upstream支持4種負(fù)載均衡調(diào)度算法:

A)輪詢(默認(rèn)):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器;

B)ip_hash:每個(gè)請(qǐng)求按訪問(wèn)IP的hash結(jié)果分配,同一個(gè)IP客戶端固定訪問(wèn)一個(gè)后端服務(wù)器??梢员WC來(lái)自同一ip的請(qǐng)求被打到固定的機(jī)器上,可以解決session問(wèn)題。

C)url_hash:按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器。后臺(tái)服務(wù)器為緩存的時(shí)候效率。

D)fair:這是比上面兩個(gè)更加智能的負(fù)載均衡算法。此種算法可以依據(jù)頁(yè)面大小和加載時(shí)間長(zhǎng)短智能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的

upstream_fair模塊。

Ngi點(diǎn)nx擊實(shí)添現(xiàn)加負(fù)標(biāo)載題均文衡字upstreamJDB感謝您的觀看!

串講人:劉豪偉2019年3月15日

Doonethingatatime,anddowell.JDB感謝您的觀看!串講人:劉豪偉201JDBnginx學(xué)習(xí)分享

串講人:劉豪偉2019年3月15日

Modestymakesoneprogress,pridemakesonelagbehind.JDBnginx學(xué)習(xí)分享串講人:劉豪偉20CONTENTS

123Nginx實(shí)現(xiàn)反向代理

Nginx實(shí)現(xiàn)頁(yè)面緩存

Nginx實(shí)現(xiàn)負(fù)載均衡

CONTENTS123Nginx實(shí)現(xiàn)反向代理Ngi01Nginx

做反向代理

01Nginx做反向代理正向代理與反向代理

現(xiàn)實(shí)生活中的例子

1、正向代理:訪問(wèn)

如上圖,因?yàn)槟壳癵oogle已被和諧,我們需要vpn才能科學(xué)訪問(wèn)

vpn對(duì)于“我們”來(lái)說(shuō),是可以感知到的(我們連接vpn),vpn對(duì)于”google服務(wù)器”來(lái)說(shuō),是不可感知的(google只知道有http請(qǐng)求過(guò)來(lái))。

對(duì)于人來(lái)說(shuō)可以感知到,但服務(wù)器感知不到的服務(wù)器,我們叫他正向代理服務(wù)器。

正向代理與反向代理現(xiàn)實(shí)生活中的例子1、正向代理:訪問(wèn)go正向代理與反向代理

現(xiàn)實(shí)生活中的例子

2、反向代理:通過(guò)反向代理實(shí)現(xiàn)負(fù)載均衡

總結(jié)

說(shuō)白了:“正向”、“反向”是相對(duì)于人的感知來(lái)說(shuō)的。人能感受到的代理就是正向代理,人感受不到的代理就是反向代理

如上圖,我們?cè)L問(wèn)的時(shí)候,百度有一個(gè)代理服務(wù)器,

通過(guò)這個(gè)代理服務(wù)器,可以做負(fù)載均衡,路由到不同的server。

此代理服務(wù)器,對(duì)于“我們”來(lái)說(shuō)是不可感知的(我們只能感知到訪問(wèn)的是百度的服務(wù)器,不知道中間還有代理服務(wù)器來(lái)做負(fù)載均衡)。

對(duì)于人來(lái)說(shuō)不可感知,但對(duì)于服務(wù)器來(lái)說(shuō)是可以感知的,我們叫他反向代理服務(wù)器。

正向代理與反向代理現(xiàn)實(shí)生活中的例子2、反向代理:通過(guò)反向nginx實(shí)現(xiàn)反向代理

nginx是高度模塊化的,各個(gè)功能都封裝在模塊中,而各個(gè)模塊的初始化則是根據(jù)配置文件來(lái)進(jìn)行的。

實(shí)現(xiàn)反向代理的模塊

模塊

:ngx_http_proxy_module指令:

proxy_pass:指定上游服務(wù)器的ip和端口

proxy_set_header:添加一個(gè)新的首部

指令語(yǔ)法

Syntax:proxy_passURL;Default:—

Context:location,ifinlocation,limit_except例子:proxy_pass96:8000;Syntax:proxy_set_headerfieldvalue;Default:proxy_set_headerHost$proxy_host;Context:http,server,location

nginx的配置中,可以使用變量

內(nèi)置變量:nginx自帶的

自定義變量:用戶定義的,定義方法:set變量名

變量值

演示配置

反向代理的例子

location/{

proxy_pass80;

proxy_set_headerX-Real-IP$remote_addr

proxy_set_headerHost$proxy_host;}

nginx實(shí)現(xiàn)反向代理nginx是高度模塊化的,各個(gè)功能都nginx實(shí)現(xiàn)反向代理

補(bǔ)充1location/admin{proxy_pass/;proxy_pass;}請(qǐng)求的url是/admin/a.html

如果代理方式是proxy_pass/;那么去的根目錄下找a.html

如果代理方式是proxy_pass;那么去的跟目錄下的admin找a.html補(bǔ)充2如果location中使用了模式匹配(正則),那么,location中的url會(huì)直接補(bǔ)充到代理節(jié)點(diǎn)的后面,此時(shí),上游服務(wù)器的的后面不能有任何內(nèi)容,包括/location~\.php${

proxy_pass;<<<正確寫(xiě)法

proxy_pass:80;<<<正確寫(xiě)法

proxy_pass/;<<<錯(cuò)誤寫(xiě)法

proxy_pass/img;<<<錯(cuò)誤寫(xiě)法

}此時(shí),如果請(qǐng)求的url是/book/stu/a.php,

就會(huì)代理成/book/stu/a.phpnginx實(shí)現(xiàn)反向代理補(bǔ)充1location/adminginx實(shí)現(xiàn)反向代理

補(bǔ)充3在location中如果有重定向的話,那么就用重定向后的uri替換掉代理節(jié)點(diǎn)中的urilocation/{rewrite/(.*)$/index.php?name=$1break;proxy_pass:80/img;}

此時(shí),如果請(qǐng)求的url是

/bajie,

就會(huì)代理成/index.php?name=bajie補(bǔ)充4rewrite語(yǔ)法:rewriteregex(表達(dá)式)replacement(替換項(xiàng))flag(標(biāo)志位)。

標(biāo)志位:break:

本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則

last:

相當(dāng)于apache里面的[L]標(biāo)記,表示rewrite,完成重寫(xiě)指令,之后搜索相應(yīng)的URI或locationpermanent:

返回301永久重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址

redirect:

返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址

nginx實(shí)現(xiàn)反向代理補(bǔ)充3在location中如果有重02Nginx

實(shí)現(xiàn)頁(yè)面緩存

02Nginx實(shí)現(xiàn)頁(yè)面緩存Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

Nginx緩存的基本思路:

利用請(qǐng)求的局部性原理,將請(qǐng)求過(guò)的內(nèi)容在本地建立一個(gè)副本,下次訪問(wèn)時(shí)不再連接到后端服務(wù)器,直接響應(yīng)本地內(nèi)容

Nginx服務(wù)器啟動(dòng)后,會(huì)對(duì)本地磁盤上的緩存文件進(jìn)行掃描,在內(nèi)存中建立緩存索引,并有專門的進(jìn)程對(duì)緩存文件進(jìn)行過(guò)期判斷、更新等進(jìn)行管理

緩存格式:key-value格式

key儲(chǔ)存在內(nèi)存中:就是將請(qǐng)求的urivalue儲(chǔ)存在磁盤上:就是緩存的數(shù)據(jù)

需要注意的是Nginx緩存需要結(jié)合反向代理一起才能實(shí)現(xiàn)

問(wèn)題

對(duì)于緩存,我們大概會(huì)有以下問(wèn)題:

(1)緩存文件放在哪兒?

(2)如何指定哪些請(qǐng)求被緩存?

(3)緩存的有效期是多久?

(4)過(guò)了有效期的數(shù)據(jù)是否還能使用?

(5)對(duì)于某些請(qǐng)求,是否可以不走緩存?

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字Nginx緩存的基Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(1)緩存文件放在哪兒?

設(shè)置緩存數(shù)據(jù)的相關(guān)信息

path:緩存目錄的位置

levels:指定使用幾級(jí)緩存目錄

keys_zone:指定緩存區(qū)域的名稱和緩存空間的大小

proxy_cache_path/data/nginx/cachelevels=1:2keys_zone=one:10m;

緩存結(jié)果:/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029cNgi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(1)緩存文件放在Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(2)如何指定哪些請(qǐng)求被緩存?

1.如果開(kāi)啟了緩存:nginx默認(rèn)會(huì)緩存所有g(shù)et和head方法的請(qǐng)求結(jié)果,緩存的key默認(rèn)使用請(qǐng)求字符串

2.指定哪些請(qǐng)求方法的請(qǐng)求被緩存

3.指定請(qǐng)求至少被發(fā)送了多少次以上時(shí)才緩存,可以防止低頻請(qǐng)求被緩存

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(2)如何指定哪些Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(3)緩存的有效期是多久?

proxy_cache_valid20030210m;定義了返回狀態(tài)碼是200和302的請(qǐng)求其數(shù)據(jù)緩存十分鐘

proxy_cache_validany1m;定義返回任何狀態(tài)碼的請(qǐng)求其數(shù)據(jù)都緩存1分鐘

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(3)緩存的有效期Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(4)過(guò)了有效期的數(shù)據(jù)是否還能使用?

哪種情況下可以使用過(guò)期的數(shù)據(jù)

error:上游服務(wù)器響應(yīng)error的時(shí)候

timeout:表示上游服務(wù)器響應(yīng)超時(shí)的時(shí)候

updating如果當(dāng)前正在更新,該參數(shù)允許使用陳舊的緩存響應(yīng)。

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(4)過(guò)了有效期的Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

(5)對(duì)于某些請(qǐng)求,是否可以不走緩存?

哪種情況下可以不使用緩存

proxy_cache_bypass$cookie_nocache$arg_nocache$arg_comment;proxy_cache_bypass$http_pragma$http_authorization;如果任何一個(gè)字符串參數(shù)值不為空,或者不等于0,nginx就不會(huì)查找緩存,直接進(jìn)行代理轉(zhuǎn)發(fā)

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字(5)對(duì)于某些請(qǐng)求Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字

演示配置

http段:

proxy_cache_path/cache/nginxlevels=1:1keys_zone=mycache:100m;Server段:

proxy_cachemycache;proxy_cache_valid20030210m;proxy_cache_valid3011h;proxy_cache_validany1m;proxy_cache_use_staleerrortimeoutinvalid_headerupdatinghttp_500;}

擴(kuò)展:

如何檢查我所請(qǐng)求的數(shù)據(jù)是哪個(gè)主機(jī)發(fā)送給我的?

添加首部add_headerserverHost$server_addr;

如果檢查我所請(qǐng)求的數(shù)據(jù)在緩存中是否存在?

添加首部add_headercacheStatus$upstream_cache_status;Ngi點(diǎn)nx實(shí)現(xiàn)擊添加頁(yè)標(biāo)面題緩文存字演示配置htt03Nginx實(shí)現(xiàn)負(fù)載均衡

03Nginx實(shí)現(xiàn)負(fù)載均衡Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字

nginx負(fù)載均衡是ngx_http_upstream_module模塊的功能,

需要在配置文件http塊上下文中定義upstream塊,

指定一組負(fù)載均衡的后端服務(wù)器,

然后在上面講到的proxy_pass中引用,

就可以反向代理時(shí)實(shí)現(xiàn)負(fù)載均衡了。

需要注意的是:ngx_http_upstream段要在server段前面,要定義在http段中。

要實(shí)現(xiàn)基本的負(fù)載均衡用到的指令很簡(jiǎn)單

Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字nginx負(fù)載均衡Ngi點(diǎn)nx實(shí)現(xiàn)擊添加負(fù)標(biāo)載題均文衡字

指令:upstreamExample:

upstreambackend{serverweight=5;server:8080max_fails=3fail_timeout=30s;serverdown;server80backup;}

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論