首頁  >  文章  >  運維  >  Nginx快取清理配置,保持網站內容更新

Nginx快取清理配置,保持網站內容更新

王林
王林原創
2023-07-05 22:28:353431瀏覽

Nginx快取清理配置,保持網站內容更新

在建立網站時,我們經常使用Nginx作為反向代理伺服器,用於加速網站存取和快取靜態檔案。但是,當我們更新了網站內容時,我們需要及時清理Nginx的緩存,以保持用戶訪問的是最新的內容。本文將介紹如何設定Nginx快取清理,以保持網站內容的更新。

一、設定快取路徑

首先,我們需要設定Nginx的快取路徑。開啟Nginx的設定文件,一般是/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf,找到#http段,新增以下配置:

http {
    ...
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        ...
    }
    ...
}

上述配置將快取檔案儲存在/var/cache/nginx目錄下,並設定了快取大小為10GB,快取過期時間為60分鐘。需要根據實際情況進行調整。

二、設定快取清理介面

接下來,我們需要設定一個介面用來清理Nginx的快取。

在Nginx的設定檔中,找到需要清理快取的地方,例如一個POST請求:

http {
    ...
    server {
        ...
        location /update {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            # 清理缓存
            proxy_cache_purge my_cache GET POST;
        }
        ...
    }
    ...
}

上述設定中,location /update用於匹配需要更新的URL路徑,例如/updateproxy_cache_purge指令用於清理緩存,參數GET POST表示同時清理GET和POST請求的快取。可依實際情況進行調整。

三、安裝Purge模組

Nginx的預設安裝中並不包含proxy_cache_purge模組,我們需要手動安裝。

使用以下指令安裝Nginx的模組管理工具:

yum install -y yum-utils

使用下列指令新增Nginx的擴充來源:

yum-config-manager --add-repo=https://nginx.org/packages/centos/7/x86_64/

最後,使用下列指令安裝Nginx的 nginx-module-cache-purge模組:

yum install -y nginx-module-cache-purge

四、重啟Nginx服務

完成以上配置後,需要重新啟動Nginx服務使設定生效。使用以下命令重啟Nginx:

systemctl restart nginx

五、清理快取的方式

現在,我們可以透過存取清理快取的介面來實現清理Nginx的快取。例如,如果我們要清理/update路徑的緩存,可以使用以下命令:

curl -X POST http://yourdomain.com/update

這樣就會觸發Nginx清理/update路徑下的快取。

六、自動清理快取

為了確保網站內容的更新,我們可以透過定期清理快取的方式,自動保持Nginx中的快取與實際網站內容的一致性。

我們可以使用定時任務工具(如Cron)來定期執行清理快取的命令。例如,設定每天凌晨4點清理一次緩存,可以使用以下命令編輯定時任務:

crontab -e

然後添加以下一行命令:

0 4 * * * curl -X POST http://yourdomain.com/update >> /tmp/nginx_cache_clear.log 2>&1

儲存並退出編輯器,這樣每天凌晨4點就會觸發一次清理快取的操作,並將執行結果保存在/tmp/nginx_cache_clear.log檔案中。

總結

透過以上配置,我們可以實現Nginx快取的自動清理,保持網站內容的更新。同時,我們也可以根據需要靈活調整快取路徑和清理方式,以適應不同的網站需求。

以上是Nginx快取清理配置,保持網站內容更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn