国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術知識庫 >  云服務器 >  服務器教程 >  Nginx 反向代理緩存(proxy_cache)的實現(xiàn)

Nginx 反向代理緩存(proxy_cache)的實現(xiàn)

2024-05-11 14:19:42 1615

Nginx 反向代理緩存(proxy_cache)的實現(xiàn)

藍隊云小課堂:

本文主要介紹了Nginx 反向代理緩存(proxy_cache)的實現(xiàn)

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

Nginx的緩存加速功能是由proxy_cache(用于反向代理和靜態(tài)緩存)和fastcgi_cache(PHP動態(tài)緩存)兩個功能模塊完成。

Nginx緩存特點:

  • 緩存穩(wěn)定,運行速度與Squid相差無幾(因為都使用硬盤緩存);

  • 對多核CPU的利用率比其他的開源軟件好;

  • 支持高并發(fā)請求數(shù),能同時承受更多的訪問請求;

范例:

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 / {

 

        }

 

        #要緩存文件的后綴,可以在以下設置。

        location ~ .*\\.(gif|jpg|png|css|js)(.*) {

                proxy_pass http://www.tjdsmy.cn地址: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 / {

 

        }

    }

}配置項:

http層設置

  • proxy_connect_timeout 服務器連接的超時時間

  • proxy_read_timeout 連接成功后,等候后端服務器響應時間

  • proxy_send_timeout 后端服務器數(shù)據(jù)回傳時間

  • proxy_buffer_size 緩沖區(qū)的大小

  • proxy_buffers 每個連接設置緩沖區(qū)的數(shù)量為number,每塊緩沖區(qū)的大小為size

  • proxy_busy_buffers_size 開啟緩沖響應的功能以后,在沒有讀到全部響應的情況下,寫緩沖到達一定大小時,nginx一定會向客戶端發(fā)送響應,直到緩沖小于此值。

  • proxy_temp_file_write_size 設置nginx每次寫數(shù)據(jù)到臨時文件的size(大小)限制

  • proxy_temp_path 從后端服務器接收的臨時文件的存放路徑

  • proxy_cache_path 設置緩存的路徑和其他參數(shù)。被緩存的數(shù)據(jù)如果在inactive參數(shù)(當前為1天)指定的時間內(nèi)未被訪問,就會被從緩存中移除

server層設置

  • proxy_pass nginx緩存里拿不到資源,向該地址轉發(fā)請求,拿到新的資源,并進行緩存

  • proxy_redirect 設置后端服務器“Location”響應頭和“Refresh”響應頭的替換文本

  • proxy_set_header 允許重新定義或者添加發(fā)往后端服務器的請求頭

  • proxy_cache 指定用于頁面緩存的共享內(nèi)存,對應http層設置的keys_zone

  • proxy_cache_valid 為不同的響應狀態(tài)碼設置不同的緩存時間

  • expires 緩存時間

這里設置了圖片、cssjs靜態(tài)資源進行緩存。 當用戶輸入http://www.tjdsmy.cn域名時,解析得到ip:port的訪問地址。port默認為80。所以頁面請求會被當前server截取到,進行請求處理。 當解析到上述文件名結尾的靜態(tài)資源,會到緩存區(qū)獲取靜態(tài)資源。 如果獲取到對應資源,則直接返回數(shù)據(jù)。 如果獲取不到,則將請求轉發(fā)給proxy_pass指向的地址進行處理。

更多小知識,可聯(lián)系藍隊云一起探討。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: