使用 FTP 清除 NGINX 快取

使用 FTP 清除 NGINX 快取

我有一個 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,尤其是對權限敏感的目錄執行操作時。另一個選擇是:

  1. 與普通使用者一起使用 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
    
  2. 使用 cron 運行腳本定期檢查flag-file.此特殊檔案可以透過FTP SSH (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
    

相關內容