Apache 2.4 / PHP-FPM ProxyPassMatch e restrição de acesso

2

Eu tenho a configuração do Apache / PHP exatamente assim: link

Inclui a regra ProxyPassMatch , conforme mencionado:

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/path/to/files/$1

Isso envia todas as solicitações com .php para um proxy e, finalmente, atende o PHP bem.
No entanto, tenho tentado fazer algum controle de acesso e o proxy parece ter precedência. Minha estrutura de pastas é assim:

/             <-- PHP files
/extra/       <-- PHP files
/css/
/img/

Deve haver acesso aos arquivos PHP no diretório raiz, mas desejo restringir o acesso ao extra dir. Eu adicionei estas linhas à minha configuração principal:

<Directory "/extra">
    Order deny,allow
    Deny from all
</Directory>

Mas os arquivos PHP ainda são executados ... Quando eu coloco um tipo diferente de arquivo na pasta, ele é bloqueado com sucesso, então a diretiva funciona. Eu estou supondo que a regra ProxyPassMatch está proibindo que ele trabalhe para arquivos PHP.

Eu tentei algumas coisas, como colocar a regra ProxyPassMatch dentro de um bloco <Directory> (não funciona, porque você não pode usar ProxyPassMatch dentro de tais blocos) e substituir ProxyPassMatch por RewriteRule com o sinal [P] (semelhante a este: Apache 2.4 + PHP-FPM + ProxyPassMatch , mas não obteve proxy).

Minha pergunta é quase exatamente a mesma que esta: link . No entanto, não obteve uma resposta definitiva.

O que me confunde é que você precisa ter a regra de proxy no lugar, mas quando você a coloca, nada mais importa (o .htaccess também não funciona mais). Além disso, isso levanta questões sobre segurança. Tudo com .php permanece inalterado pelas minhas provisões de acesso e passa direto para os internos do sistema. Como posso combinar o PHP-FPM com regras de segurança adequadas no Apache?

    
por kasimir 08.08.2014 / 12:38

2 respostas

1

Com ProxyPassMatch .htaccess , os arquivos serão completamente ignorados. Algo semelhante provavelmente está acontecendo com as diretivas ignoradas no arquivo de configuração principal.

Tente usar FilesMatch e SetHandler , conforme descrito em uma resposta de 2015 à pergunta à qual você já se vinculou e esta postagem no blog .

    
por 04.08.2016 / 12:39
0

Coloque isso na frente do seu ProxyPassMatch

ProxyPass /extra !

Se ProxyPass encontrar / extra for a pasta atual, o ProxyPassMatch não será usado. Importante é o! no final da linha.

Veja aqui para mais informações: ProxyPass

    
por 31.08.2014 / 20:27