Na realidade, isso é o que funcionou para mim:
location ~ folder/ {
allow 1.2.3.4; #server IP
deny all;
}
Eu quero negar o acesso a uma pasta específica (e a todos os arquivos dentro dela), mas gostaria que os arquivos php de dentro do meu servidor pudessem ter acesso a ele (e seus arquivos). É possível? É isso que estou tentando sem sucesso:
location /folder/ {
allow 1.2.3.4; # my server IP
deny all;
return 404;
}
As ACLs configuradas na configuração do nginx são para as solicitações http que serão atendidas pelo nginx. Se o PHP quiser acessar outros arquivos, ele não será restringido pela configuração do nginx. PHP, no entanto, pode ser restringido por sua própria configuração.
Como você deseja mover alguma segurança para o PHP, quero observar que o PHP pode ter acesso aos arquivos de configuração e aos semelhantes. Por isso, certifique-se de não permitir que um código como esse forneça informações úteis a um invasor:
http://my.server.acme.org/images.php?file=../../../etc/passwd