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

Nginx實現動態(tài)內容緩存的示例代碼

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

在 Nginx 中實現動態(tài)內容的緩存可以顯著提高性能,減少后端服務器的負載。以下是如何在 Nginx 中配置動態(tài)內容緩存的詳細步驟和示例配置。

1. 安裝 Nginx

確保你已經安裝了 Nginx。如果沒有安裝,可以使用以下命令進行安裝:

sudo apt-get update
sudo apt-get install nginx

2. 配置緩存目錄

首先,定義一個緩存目錄,用于存儲緩存的數據。

示例配置:

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. 參數解釋

  • proxy_cache_path:定義緩存目錄的路徑、層級結構、緩存區(qū)名稱、最大大小和活動時間。

    • /var/cache/nginx:緩存目錄路徑。
    • levels=1:2:緩存文件的層級結構,例如 1:2 表示兩級目錄。
    • keys_zone=my_cache:10m:緩存區(qū)名稱和大小,10MB。
    • max_size=1g:緩存的最大大小,1GB。
    • inactive=60m:緩存項在不活躍多久后會被刪除,60分鐘。
    • use_temp_path=off:禁用臨時文件路徑,直接寫入緩存目錄。
  • proxy_cache:啟用緩存,指定緩存區(qū)名稱。

  • proxy_cache_key:定義緩存鍵,用于唯一標識緩存項。

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

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

4. 配置緩存忽略查詢字符串

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

示例配置:

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;

            # 忽略查詢字符串
            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. 測試配置

在重新加載 Nginx 之前,先測試配置文件是否有語法錯誤。

sudo nginx -t

6. 重新加載 Nginx

如果配置文件沒有問題,重新加載 Nginx 使配置生效。

sudo systemctl reload nginx

7. 驗證緩存

可以通過查看響應頭中的 X-Proxy-Cache 字段來驗證緩存是否生效。

示例請求:

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

示例響應:

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

總結

通過上述配置,Nginx 可以有效地緩存動態(tài)內容,提高系統(tǒng)的性能和響應速度。這些配置可以根據實際需求進行調整,以滿足不同的緩存策略和要求。

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

相關文章

  • nginx如何實現同個ip、端口訪問不同的項目(以路徑區(qū)分項目)

    nginx如何實現同個ip、端口訪問不同的項目(以路徑區(qū)分項目)

    這篇文章主要介紹了nginx如何實現同個ip、端口訪問不同的項目(以路徑區(qū)分項目),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx下配置301重定向的正確方法例子

    Nginx下配置301重定向的正確方法例子

    這篇文章主要介紹了Nginx下配置301重定向的正確方法例子,本文給出了常用的配置方法例子和正確的配置例子,需要的朋友可以參考下
    2015-03-03
  • 啟用Nginx目錄瀏覽功能的方法

    啟用Nginx目錄瀏覽功能的方法

    這篇文章主要介紹了啟用Nginx目錄瀏覽功能的方法,需要的朋友可以參考下
    2014-03-03
  • Nginx反向代理如何到訪問者機器上(后端調試)

    Nginx反向代理如何到訪問者機器上(后端調試)

    這篇文章主要介紹了Nginx反向代理如何到訪問者機器上(后端調試),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_port區(qū)別解析

    nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_por

    nginx為了實現反向代理的需求而增加了一個ngx_http_proxy_module模塊,其中proxy_set_header指令就是該模塊需要讀取的配置文件,這篇文章主要介紹了nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_port區(qū)別,需要的朋友可以參考下
    2024-03-03
  • 如何使用Nginx解決跨域問題詳解

    如何使用Nginx解決跨域問題詳解

    本地運行一個項目,但是要訪問外域的api接口,存在跨域問題,下面這篇文章主要給大家介紹了關于如何使用Nginx解決跨域問題的相關資料,文中介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Nginx+ModSecurity安全模塊部署的實現

    Nginx+ModSecurity安全模塊部署的實現

    本文主要介紹了Nginx+ModSecurity安全模塊部署的實現,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Nginx安裝SSl模板異常處理方式

    Nginx安裝SSl模板異常處理方式

    文章介紹了在Linux環(huán)境下配置Nginx支持SSL時遇到的問題及解決方法,主要步驟包括:安裝SSL模塊、解決缺少OpenSSL包的問題,并通過下載和編譯源碼的方式解決SSL模塊安裝失敗的問題
    2025-02-02
  • Nginx Proxy Manager輕松搭建反向代理的實現

    Nginx Proxy Manager輕松搭建反向代理的實現

    NginxProxyManager是一款開源的反向代理和SSL證書管理工具,本文主要介紹了Nginx Proxy Manager輕松搭建反向代理的實現,感興趣的可以了解一下
    2025-02-02
  • Nginx中Location配置超詳細講解

    Nginx中Location配置超詳細講解

    最近一直在做location 配置,遇到優(yōu)先級別問題(如果配置不當可能存在安全隱患哦),下面這篇文章主要給大家介紹了關于Nginx中Location配置的相關資料,需要的朋友可以參考下
    2023-01-01

最新評論