Limpe o cache NGINX usando FTP

Limpe o cache NGINX usando FTP

Eu tenho um servidor NGINX configurado para lidar com o cache de um site (em execução em outro lugar).

Funciona perfeitamente, mas queremos que os administradores tenham a opção de liberar o cache de seu backoffice. Eu estava pensando em lidar com isso usando FTP, simplesmente removendo todos os arquivos do diretório de cache.

Eu configurei o cache assim:

proxy_cache_path /var/cache/nginx/my_site levels=1:2 keys_zone=MY_SITE:8m max_size=2048m inactive=720m;

Porém os arquivos são armazenados com permissões 700. Como posso dizer ao NGINX para também conceder permissões ao grupo (770)? Eu adicionaria o usuário FTP que criei a esse grupo.

Qualquer outra sugestão para lidar com a descarga seria OK (eu lio tópico no StackOverflow). O backoffice está localizado em outro local, então eu teria que usar alguma tecnologia remota.

Responder1

Roubar Explicando as ideias deVBarte enviar mais informações

Por favor, não use FTP inseguro, especialmente para executar uma ação em diretórios sensíveis a permissões. A alternativa é:

  1. Use SSH com usuário normal e dê sudopermissão a um script específico que esteja limpando o nginx-cache. Por exemplo, coloque este script em /opt/clear-cache.sh.

    #!/bin/sh
    rm -rf /path/to/nginx-cache
    

    Por segurança, não se esqueça de executar

    chown root:root h/opt/clear-cache.sh && chmod 700 /opt/clear-cache.sh
    

    Em seguida, execute visudopara adicionar a linha abaixo/etc/sudoers

    backofficeuser ALL=(root)  /opt/clear-cache.sh
    
  2. Use cron para executar script que verifica periodicamente a existência de arquivos flag-file. Este arquivo especial pode ser criado via FTP SSH (SFTP/SCP). Quando flag-fileexistir, o script limpará o cache nginx. O script de exemplo.

    #!/bin/sh
    
    FILE=/path/to/special/file
    
    if [ ! -f $FILE ]
    then
        rm $FILE
        rm -rf /path/to/nginx/cache/*
    fi
    

    Em seguida, adicione-o ao cron viasudo crontab -e

    * * * * * /path/to/myscript.sh
    

informação relacionada