nginx restringe o acesso ao diretório por ip

5

Estou usando o nginx e quero restringir o acesso a um diretório para todos, exceto eu. Eu quero acessar os scripts do php em / restricted. Eu tentei algumas coisas até agora. Se bem me lembro, isso funciona para bloquear o acesso a todos, exceto o ip permitido, mas todos os scripts são enviados para download em vez de processados agora.

location ~ /restricted { allow 1.2.3.4; deny all; }

    
por Poe 11.06.2011 / 22:38

1 resposta

7

Você precisará de um segundo (prefiro aninhado) bloco php desde que você queira que esses arquivos php sejam tratados de maneira diferente. Além disso, assumindo que / restricted é suposto ser um prefixo uri e não apenas algo que aparece em qualquer lugar no uri, você quer um tipo diferente de localização:

# This handles everything that starts with /restricted,
# and no regex locations will override it
location ^~ /restricted {
  allow 1.2.3.4;
  deny all;

  # This will inherit the allow/deny from the outer location
  location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass backend;
  }
}
    
por 12.06.2011 / 03:16

Tags