欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用nginx緩存服務(wù)器上靜態(tài)文件的設(shè)置方法

 更新時(shí)間:2018年05月10日 09:26:24   作者:wall''s  
這篇文章主要介紹了使用nginx緩存服務(wù)器上的靜態(tài)文件,文中給大家提到了nginx緩存的優(yōu)點(diǎn)及設(shè)置方法,通過實(shí)例相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下

一、nginx緩存的優(yōu)點(diǎn)

如圖所示,nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請求壓力。
因?yàn)殪o態(tài)文件(比如css,js, 圖片)中,很多都是不經(jīng)常更新的。nginx使用proxy_cache將用戶的請求緩存到本地一個(gè)目錄。下一個(gè)相同請求可以直接調(diào)取緩存文件,就不用去請求服務(wù)器了。
畢竟,IO密集型服務(wù)的處理是nginx的強(qiáng)項(xiàng)。

二、如何進(jìn)行設(shè)置

先上個(gè)栗子:

http{
  proxy_connect_timeout 10;
  proxy_read_timeout 180;
  proxy_send_timeout 5;
  proxy_buffer_size 16k;
  proxy_buffers 4 32k;
  proxy_busy_buffers_size 96k;
  proxy_temp_file_write_size 96k;
  proxy_temp_path /tmp/temp_dir;
  proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
  server {
    listen    80 default_server;
    server_name localhost;
    root /mnt/blog/;
    location / {
    }
    #要緩存文件的后綴,可以在以下設(shè)置。
    location ~ .*\.(gif|jpg|png|css|js)(.*) {
        proxy_pass http://ip地址:90;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_cache cache_one;
        proxy_cache_valid 200 302 24h;
        proxy_cache_valid 301 30d;
        proxy_cache_valid any 5m;
        expires 90d;
        add_header wall "hey!guys!give me a star.";
    }
  }
  # 無nginx緩存的blog端口
  server {
    listen 90;
    server_name localhost;
    root /mnt/blog/;
    location / {
    }
  }
}

因?yàn)槲?是在一臺(tái)服務(wù)器上做試驗(yàn),所以用了兩個(gè)端口80和90進(jìn)行模擬兩臺(tái)服務(wù)器之間的交互。

80端口對接的是普通的域名(http://wangxiaokai.vip)訪問。
90端口負(fù)責(zé)處理80端口代理過來的資源訪問。
相當(dāng)于90端口是源服務(wù)器,80端口是nginx反向緩存代理服務(wù)器。

接下來講一下配置項(xiàng):

2.1 http層設(shè)置

 proxy_connect_timeout 10;
  proxy_read_timeout 180;
  proxy_send_timeout 5;
  proxy_buffer_size 16k;
  proxy_buffers 4 32k;
  proxy_busy_buffers_size 96k;
  proxy_temp_file_write_size 96k;
  proxy_temp_path /tmp/temp_dir;
  proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
  • proxy_connect_timeout 服務(wù)器連接的超時(shí)時(shí)間
  • proxy_read_timeout 連接成功后,等候后端服務(wù)器響應(yīng)時(shí)間
  • proxy_send_timeout 后端服務(wù)器數(shù)據(jù)回傳時(shí)間
  • proxy_buffer_size 緩沖區(qū)的大小
  • proxy_buffers 每個(gè)連接設(shè)置緩沖區(qū)的數(shù)量為number,每塊緩沖區(qū)的大小為size
  • proxy_busy_buffers_size 開啟緩沖響應(yīng)的功能以后,在沒有讀到全部響應(yīng)的情況下,寫緩沖到達(dá)一定大小時(shí),nginx一定會(huì)向客戶端發(fā)送響應(yīng),直到緩沖小于此值。
  • proxy_temp_file_write_size 設(shè)置nginx每次寫數(shù)據(jù)到臨時(shí)文件的size(大小)限制
  • proxy_temp_path 從后端服務(wù)器接收的臨時(shí)文件的存放路徑
  • proxy_cache_path 設(shè)置緩存的路徑和其他參數(shù)。被緩存的數(shù)據(jù)如果在inactive參數(shù)(當(dāng)前為1天)指定的時(shí)間內(nèi)未被訪問,就會(huì)被從緩存中移除

2.2 server層設(shè)置

2.2.1 反向緩存代理服務(wù)器

server {
    listen    80 default_server;
    server_name localhost;
    root /mnt/blog/;
    location / {
    }
    #要緩存文件的后綴,可以在以下設(shè)置。
    location ~ .*\.(gif|jpg|png|css|js)(.*) {
        proxy_pass http://ip地址:90;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_cache cache_one;
        proxy_cache_valid 200 302 24h;
        proxy_cache_valid 301 30d;
        proxy_cache_valid any 5m;
        expires 90d;
        add_header wall "hey!guys!give me a star.";
    }
  }
  • proxy_pass nginx緩存里拿不到資源,向該地址轉(zhuǎn)發(fā)請求,拿到新的資源,并進(jìn)行緩存
  • proxy_redirect 設(shè)置后端服務(wù)器“Location”響應(yīng)頭和“Refresh”響應(yīng)頭的替換文本
  • proxy_set_header 允許重新定義或者添加發(fā)往后端服務(wù)器的請求頭
  • proxy_cache 指定用于頁面緩存的共享內(nèi)存,對應(yīng)http層設(shè)置的keys_zone
  • proxy_cache_valid 為不同的響應(yīng)狀態(tài)碼設(shè)置不同的緩存時(shí)間
  • expires 緩存時(shí)間

這里我設(shè)置了圖片、css、js靜態(tài)資源進(jìn)行緩存。
當(dāng)用戶輸入http://wangxiaokai.vip域名時(shí),解析得到ip:port的訪問地址。port默認(rèn)為80。所以頁面請求會(huì)被當(dāng)前server截取到,進(jìn)行請求處理。

當(dāng)解析到上述文件名結(jié)尾的靜態(tài)資源,會(huì)到緩存區(qū)獲取靜態(tài)資源。

如果獲取到對應(yīng)資源,則直接返回?cái)?shù)據(jù)。

如果獲取不到,則將請求轉(zhuǎn)發(fā)給proxy_pass指向的地址進(jìn)行處理。

2.2.2 源服務(wù)器

server {
    listen 90;
    server_name localhost;
    root /mnt/blog/;
    location / {
    }
  }

這里直接處理90端口接受到的請求,到服務(wù)器本地目錄/mnt/blog下抓取資源進(jìn)行響應(yīng)。

三、如何驗(yàn)證緩存是否有效

細(xì)心的讀者應(yīng)該發(fā)現(xiàn),我在第二段栗子里,留了個(gè)彩蛋 add_header wall "hey!guys!give me a star."。
add_header是用于在報(bào)頭設(shè)置自定義的信息。
所以,如果緩存有效的話,那么靜態(tài)資源返回的報(bào)頭,一定會(huì)帶上這個(gè)信息。

訪問http://wangxiaokai.vip結(jié)果如下:

相關(guān)文章

  • 深入探究Nginx體系化之虛擬主機(jī)分類及配置實(shí)現(xiàn)

    深入探究Nginx體系化之虛擬主機(jī)分類及配置實(shí)現(xiàn)

    Nginx,這款備受推崇的高性能 Web 服務(wù)器,以其強(qiáng)大的性能和靈活的配置而廣受歡迎,在實(shí)際應(yīng)用中,虛擬主機(jī)是一項(xiàng)重要的功能,允許我們在單個(gè)服務(wù)器上托管多個(gè)網(wǎng)站,本文將深入探討 Nginx 虛擬主機(jī)的分類和配置實(shí)現(xiàn),幫助您構(gòu)建一個(gè)高效多站點(diǎn)托管平臺(tái)
    2023-08-08
  • 使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法

    使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法

    這篇文章主要介紹了使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Nginx內(nèi)容緩存以及常見參數(shù)配置詳析

    Nginx內(nèi)容緩存以及常見參數(shù)配置詳析

    這篇文章主要給大家介紹了關(guān)于Nginx內(nèi)容緩存以及常見參數(shù)配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Nginx直接返回Json的實(shí)例

    Nginx直接返回Json的實(shí)例

    下面小編就為大家分享一篇Nginx直接返回Json的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Nginx負(fù)載均衡以及動(dòng)靜分離的原理與配置

    Nginx負(fù)載均衡以及動(dòng)靜分離的原理與配置

    動(dòng)靜分離和負(fù)載均衡都是配置nginx實(shí)現(xiàn)對請求進(jìn)行操作,所以下面這篇文章主要給大家介紹了關(guān)于Nginx負(fù)載均衡以及動(dòng)靜分離的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • nginx七層負(fù)載均衡配置詳解

    nginx七層負(fù)載均衡配置詳解

    本文主要介紹了nginx七層負(fù)載均衡配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Nginx 禁止訪問某個(gè)目錄或文件的設(shè)置方法

    Nginx 禁止訪問某個(gè)目錄或文件的設(shè)置方法

    如果基于WEB根目錄下,要禁止用戶訪問/config目錄,或者要禁止用戶訪問/config.ini(ZF常用INI,不過建議還是放到WEB目錄以外的地方),可以通過location進(jìn)行配置,返回403或者404等
    2010-09-09
  • Nginx服務(wù)快速入門教程

    Nginx服務(wù)快速入門教程

    這篇文章主要介紹了Nginx服務(wù)快速入門教程的的相關(guān)資料,幫助大家更好的理解和使用nginx,感興趣的朋友可以了解下
    2021-02-02
  • 如何配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量

    如何配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量

    這篇文章主要介紹了配置Nginx每個(gè)進(jìn)程最多打開的文件數(shù)量,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 解析prometheus+grafana監(jiān)控nginx的方法

    解析prometheus+grafana監(jiān)控nginx的方法

    ?在prometheus需要向ngxin中打入探針,通過探針獲取ngxin信息,并通過接口輸出。下文將講述如何監(jiān)控ngxin,感興趣的朋友跟隨小編一起看看吧
    2021-11-11

最新評論