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

Nginx實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容緩存的示例代碼

 更新時(shí)間:2024年11月25日 10:55:19   作者:用心去追夢(mèng)  
在Nginx中實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容的緩存可以顯著提高性能,減少后端服務(wù)器的負(fù)載,本文就來(lái)介紹一下Nginx動(dòng)態(tài)內(nèi)容緩存實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

在 Nginx 中實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容的緩存可以顯著提高性能,減少后端服務(wù)器的負(fù)載。以下是如何在 Nginx 中配置動(dòng)態(tài)內(nèi)容緩存的詳細(xì)步驟和示例配置。

1. 安裝 Nginx

確保你已經(jīng)安裝了 Nginx。如果沒(méi)有安裝,可以使用以下命令進(jìn)行安裝:

sudo apt-get update
sudo apt-get install nginx

2. 配置緩存目錄

首先,定義一個(gè)緩存目錄,用于存儲(chǔ)緩存的數(shù)據(jù)。

示例配置:

http {
    # 定義緩存區(qū)
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        # 配置緩存
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            # 啟用緩存
            proxy_cache my_cache;
            proxy_cache_key "$scheme$request_method$host$request_uri";
            proxy_cache_valid 200 301 302 10m;
            proxy_cache_valid 404 1m;

            # 添加緩存控制頭
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }
}

3. 參數(shù)解釋

  • proxy_cache_path:定義緩存目錄的路徑、層級(jí)結(jié)構(gòu)、緩存區(qū)名稱(chēng)、最大大小和活動(dòng)時(shí)間。

    • /var/cache/nginx:緩存目錄路徑。
    • levels=1:2:緩存文件的層級(jí)結(jié)構(gòu),例如 1:2 表示兩級(jí)目錄。
    • keys_zone=my_cache:10m:緩存區(qū)名稱(chēng)和大小,10MB。
    • max_size=1g:緩存的最大大小,1GB。
    • inactive=60m:緩存項(xiàng)在不活躍多久后會(huì)被刪除,60分鐘。
    • use_temp_path=off:禁用臨時(shí)文件路徑,直接寫(xiě)入緩存目錄。
  • proxy_cache:?jiǎn)⒂镁彺?,指定緩存區(qū)名稱(chēng)。

  • proxy_cache_key:定義緩存鍵,用于唯一標(biāo)識(shí)緩存項(xiàng)。

    • "$scheme$request_method$host$request_uri":緩存鍵包含協(xié)議、請(qǐng)求方法、主機(jī)名和請(qǐng)求URI。
  • proxy_cache_valid:設(shè)置不同 HTTP 狀態(tài)碼的緩存時(shí)間。

    • 200 301 302 10m:200、301 和 302 狀態(tài)碼的緩存時(shí)間為 10 分鐘。
    • 404 1m:404 狀態(tài)碼的緩存時(shí)間為 1 分鐘。
  • add_header X-Proxy-Cache $upstream_cache_status:添加一個(gè)響應(yīng)頭,顯示緩存狀態(tài)(HIT、MISS、BYPASS 等)。

4. 配置緩存忽略查詢(xún)字符串

如果需要忽略查詢(xún)字符串,可以在緩存鍵中排除查詢(xún)字符串。

示例配置:

http {
    # 定義緩存區(qū)
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        # 配置緩存
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            # 啟用緩存
            proxy_cache my_cache;
            proxy_cache_key "$scheme$request_method$host$request_uri";
            proxy_cache_valid 200 301 302 10m;
            proxy_cache_valid 404 1m;

            # 忽略查詢(xún)字符串
            proxy_ignore_headers Cache-Control;
            proxy_cache_bypass $http_pragma $http_authorization;
            proxy_no_cache $http_pragma $http_authorization;

            # 添加緩存控制頭
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }
}

5. 測(cè)試配置

在重新加載 Nginx 之前,先測(cè)試配置文件是否有語(yǔ)法錯(cuò)誤。

sudo nginx -t

6. 重新加載 Nginx

如果配置文件沒(méi)有問(wèn)題,重新加載 Nginx 使配置生效。

sudo systemctl reload nginx

7. 驗(yàn)證緩存

可以通過(guò)查看響應(yīng)頭中的 X-Proxy-Cache 字段來(lái)驗(yàn)證緩存是否生效。

示例請(qǐng)求:

curl -I http://example.com/some-dynamic-content

示例響應(yīng):

HTTP/1.1 200 OK
Server: nginx/1.21.3
Date: Tue, 12 Oct 2021 12:34:56 GMT
Content-Type: text/html
Content-Length: 1234
Connection: keep-alive
X-Proxy-Cache: HIT

總結(jié)

通過(guò)上述配置,Nginx 可以有效地緩存動(dòng)態(tài)內(nèi)容,提高系統(tǒng)的性能和響應(yīng)速度。這些配置可以根據(jù)實(shí)際需求進(jìn)行調(diào)整,以滿(mǎn)足不同的緩存策略和要求。

到此這篇關(guān)于Nginx實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容緩存的示例代碼的文章就介紹到這了,更多相關(guān)Nginx 動(dòng)態(tài)緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論