今天就跟大家聊聊有關(guān)Nginx中怎么配置uwsgi服務(wù)做緩存,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比登封網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式登封網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋登封地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
緩存為什么設(shè)置在nginx層
設(shè)置緩存是必要的,這里就說說為什么將一些請求的緩存設(shè)置在nginx層,而不是服務(wù)應(yīng)用層。理由如下:
一般來說,nginx作為代理服務(wù)器的角色,把緩存設(shè)置在nginx中,在***緩存的情況下,可以節(jié)約一次請求轉(zhuǎn)發(fā)的時間。
nginx本身使用C語言實現(xiàn),比一般的語言尤其是動態(tài)語言(python等)的性能要高。因此nginx讀取緩存的速度要比后端應(yīng)用讀取的速度快。
歷史項目中沒有引入緩存,在nginx中加緩存配置比寫應(yīng)用代碼來得快。
當(dāng)然, 需要由應(yīng)用鑒定用戶權(quán)限的接口并不適合把緩存設(shè)置在nginx層
配置方法
nginx可以代理的服務(wù)協(xié)議有多種(比如 http, uwsgi, fastcgi), 這里以uwsgi協(xié)議的配置作為例子,其他協(xié)議的基本是把配置指令中 cache前面的 uwsgi替換為協(xié)議對應(yīng)的文字即可(比如 http 對應(yīng) proxy, fastcgi 對應(yīng) fastcgi)。這里先上一個基本的配置文件,然后對關(guān)鍵的配置指令逐一講述它的配置方法及作用。
以上配置文件中,有cache字樣的都是與緩存相關(guān)的配置指令。它們的作用及配置方法如下:
1.uwsgi_cache_path,配置緩存內(nèi)容存放的位置、命名以及目錄的分配方式。 /tmp/nginx是緩存文件存放的位置; keys_zone對應(yīng)的值是緩存空間的名字及大小,此處名字是 myapp, 大小是128M; levels參數(shù)是設(shè)置緩存文件所存放的子目錄,這里1:2的意思是取緩存key(下文將要講到的 uwsgi_cache_key)的MD5值倒數(shù)***個字母為1級目錄,倒數(shù)第二第三個字母為二級目錄,在上述配置中key的MD5值為 4897858cede04cdd6676d87fd9e9163e的緩存會落在 /tmp/nginx/e/63目錄上;inactive參數(shù)是指多長時間不被***時,該緩存內(nèi)容會被刪除,這里是24小時沒有***則刪除。除了這里提及的參數(shù)外,還有其他可選參數(shù),見官方文檔 。
2.add_header Nginx-Cache "$upstream_cache_status",不建議在生產(chǎn)環(huán)境中加入這一行配置,該配置是設(shè)置一個響應(yīng)頭標(biāo)志緩存***狀態(tài),用于調(diào)試。
3.uwsgi_cache_valid 200 36h,該指令配置緩存哪些狀態(tài)碼的請求及緩存時間。這里僅當(dāng)響應(yīng)狀態(tài)碼為200時進行緩存, 緩存36小時。
4.uwsgi_cache_key $request_method_$request_uri$args,設(shè)置緩存的key,這里設(shè)置為請求方法+請求uri+參數(shù),可以根據(jù)需要使用nginx提供的其他變量。
5.uwsgi_cache_use_stale timeout http_500 http_503,該指令用于配置后端應(yīng)用出現(xiàn)哪種情況時,可以使用過期的緩存內(nèi)容。
6.uwsgi_cache myapp,設(shè)置使用的緩存空間名字,與 uwsgi_cache_path中的keyszone相對應(yīng)。該指令支持的上下文有 http、 server和 location, 寫在 location中可以為不同的接口配置不同的空間。
注意事項
說了基本配置,接著說一些值得注意的地方
uwsgi_cache_key的設(shè)置key可以使用nginx中的變量滿足各種復(fù)雜情況,但是建議不要設(shè)置得過于復(fù)雜,滿足業(yè)務(wù)需求即可,因為越復(fù)雜***率越低。如果加入了用戶的cookie作為key,就是基于用戶的緩存,只有同一個用戶再次發(fā)起相同請求時才會***,***率很低。
uwsgi_cache_valid的設(shè)置這個指令一定要配置合理,否則可能會緩存400等響應(yīng)內(nèi)容。除了200狀態(tài)碼之外,也可以根據(jù)需要為其他狀態(tài)碼的響應(yīng)進行緩存,但是緩存時間應(yīng)該短一點。比如為302的響應(yīng)內(nèi)容緩存10s。
看完上述內(nèi)容,你們對Nginx中怎么配置uwsgi服務(wù)做緩存有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
文章名稱:Nginx中怎么配置uwsgi服務(wù)做緩存
網(wǎng)頁鏈接:http://www.chinadenli.net/article24/pejcje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站、定制網(wǎng)站、小程序開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)