Nginx como executar o shell script no carregamento da página através do módulo de lua os executar e, em seguida, servir lista de diretórios?

1

Portanto, tenho um script bash que quero executar / executar em cada "carregamento de página" de url para que ele modifique (criando links simbólicos) para uma pasta /public/html/ que eu quero que o servidor sirva.

O problema é que eu descobri como fazer um ou outro não ambos.

Eu posso mostrar o diretório com nginx root /public/html/ etc. ou posso rodar o script tendo em vez de root /public/html/ tendo:

content_by_lua("/myscript.sh")';

Mas se eu usar o conteúdo por lua, o script será executado e criará o que preciso dentro de /public/html , mas o Nginx mostrará apenas uma tela em branco. Eu quero uma maneira de, em seguida, ter nginx realmente mostrar a listagem de diretório de /public/html depois de executar o myscript.sh usando content_by_lua .

Acabei de começar a usar o nginx por causa dessa tarefa e não tenho a menor ideia de como fazer isso, mas pesquisei por aí, mas não é uma pergunta fácil de usar para o google ou aqui.

    
por htfree 30.03.2015 / 02:27

1 resposta

2

Talvez eu tenha descoberto isso? Eu adicionei ngx.redirect ("/"); Então eu tenho um / com localização / public / html / no meu nginx.conf e também um:

    location /lua {
    default_type text/plain;
    content_by_lua '
    os.execute("/myscript.sh")
    return ngx.redirect("/")';

Eu teria preferido apenas um 'local' em vez de usar redirecionamentos como esse, mas pelo menos eu tenho algo que parece funcionar. Melhorias são bem-vindas.

    
por 30.03.2015 / 02:37