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으로 저장됩니다. 그룹(770)에도 권한을 부여하도록 NGINX에 지시하려면 어떻게 해야 합니까? 그런 다음 내가 만든 FTP 사용자를 해당 그룹에 추가합니다.

플러시를 처리하기 위한 다른 제안은 괜찮을 것입니다.StackOverflow의 스레드). 백오피스가 다른 위치에 있으므로 일부 원격 기술을 사용해야 합니다.

답변1

훔치기 아이디어를 설명하기VBart그리고 추가 정보 보내기

특히 권한에 민감한 디렉터리에서 작업을 수행하는 경우 안전하지 않은 FTP를 사용하지 마십시오. 대안은 다음과 같습니다.

  1. 일반 사용자로 SSH를 사용하고 sudonginx-cache 정리를 수행하는 특정 스크립트에 권한을 부여하십시오. 예를 들어 이 스크립트를 /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-cache를 지웁니다. 예제 스크립트.

    #!/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
    

관련 정보