Nginx反向代理程式快取刷新配置,即時更新網站靜態資源
#引言:
在Web開發中,靜態資源是網站中不可或缺的一部分。然而,經常更新的靜態資源可能會導致使用者在訪問過程中看到舊的版本或載入速度變慢。解決這個問題的一個有效方法是利用Nginx的反向代理快取功能,並透過配置實現即時更新網站的靜態資源。本文將介紹如何透過Nginx的配置來實現這項功能。
開啟反向代理快取:
首先,我們需要在Nginx的設定中開啟反向代理快取。找到Nginx的設定檔(通常是nginx.conf)並打開,然後找到http節,加入以下設定:
http { proxy_cache_path /path/to/cache/directory levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m; proxy_temp_path /path/to/temporary/directory; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_ignore_headers "Cache-Control" "Expires"; proxy_cache_valid any 10m; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; server { ... location / { proxy_cache cache_zone; proxy_pass http://backend-server; } ... } }
說明:
:設定反向代理快取路徑以及相關配置。
levels是目錄層級,
keys_zone是快取區域的名稱與大小,
max_size設定快取的最大大小,
inactive指定快取逾時時間。
:設定暫存目錄路徑。
:用於產生快取key的變量,$scheme表示請求協議,$request_method表示請求方法,$host表示請求的主機名,$request_uri表示請求的URI。
:指定需要忽略的回應頭。
:設定快取的有效時間。
:定義在更新快取時允許使用陳舊快取的情況。
import requests def refresh_cache(): url = "http://your-nginx-server/purge-url" headers = {"Host": "your-hostname"} response = requests.get(url, headers=headers) if response.status_code == 200: print("Cache refreshed successfully!") else: print("Failed to refresh cache.")Nginx的設定檔中,設定位址路由與快取刷新:
location ~ /purge-url { internal; proxy_cache_purge cache_zone "$scheme$request_method$host$request_uri$is_args$args"; }說明:
:設定處理重新整理快取請求的路由。
:表示該路由只能被內部請求訪問,外部請求無法存取。
:設定要重新整理的快取區域及相關參數。
X-Purge-Cache: 1的GET請求到
http://your-nginx-server/purge-url 時,Nginx會根據要求的URI刷新對應的快取。
的GET請求。如果刷新快取成功,再次存取對應的靜態資源時,會從後端伺服器取得最新版本並更新緩存,確保使用者看到的是最新的靜態資源。
透過Nginx的反向代理快取配置和即時刷新靜態資源的方法,我們可以提高網站的效能和存取速度,並確保用戶能夠即時取得到最新的靜態資源。這對於頻繁更新的網站尤其重要,同時也能減輕後端伺服器的壓力,提高網站的穩定性和可靠性。希望本文的介紹對您有幫助!
以上是Nginx反向代理快取刷新配置,即時更新網站靜態資源的詳細內容。更多資訊請關注PHP中文網其他相關文章!