
我有一個 NGINX 伺服器設定來處理網站(在其他地方運行)的快取。
工作起來就像一個魅力,但是我們希望管理員可以選擇從後台刷新快取。我正在考慮使用 FTP 來處理這個問題,只需從快取目錄中刪除所有檔案。
我已經像這樣設定了快取:
proxy_cache_path /var/cache/nginx/my_site levels=1:2 keys_zone=MY_SITE:8m max_size=2048m inactive=720m;
然而,這些檔案的儲存權限為 700。然後我會將我建立的 FTP 使用者新增到該群組。
任何其他處理沖洗的建議都可以(我讀過StackOverflow 上的線程)。後台辦公室位於另一個位置,因此我必須使用一些遠端技術。
答案1
請不要使用不安全的 FTP,尤其是對權限敏感的目錄執行操作時。另一個選擇是:
與普通使用者一起使用 SSH,並
sudo
授予執行 nginx 快取清除的特定腳本權限。例如將此腳本放入/opt/clear-cache.sh
.#!/bin/sh rm -rf /path/to/nginx-cache
為了安全,不要忘記運行
chown root:root h/opt/clear-cache.sh && chmod 700 /opt/clear-cache.sh
然後運行
visudo
添加以下行/etc/sudoers
backofficeuser ALL=(root) /opt/clear-cache.sh
使用 cron 運行腳本定期檢查
flag-file
.此特殊檔案可以透過FTPSSH (SFTP/SCP)建立。當flag-file
存在時,腳本將清除 nginx 快取。範例腳本。#!/bin/sh FILE=/path/to/special/file if [ ! -f $FILE ] then rm $FILE rm -rf /path/to/nginx/cache/* fi
然後將其添加到 cron 通過
sudo crontab -e
* * * * * /path/to/myscript.sh