Nginx Executa vários blocos de localização

1

Eu tenho o seguinte bloco nginx location :

location ^~ /publish {
  allow 127.0.0.1;

  #Allow home
  allow 99.100.101.102;

  deny all;
}

Então este location bloqueia para processar o PHP depois:

location ~\.php {
  try_files $uri =404;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_intercept_errors on;
  fastcgi_pass 127.0.0.1:9000;
  include /etc/nginx/fastcgi_params;
}

O problema é que os arquivos dentro de /publish como execute.php não estão sendo processados pelo processador PHP fastcgi, eles simplesmente produzem o código PHP puro quando chamados de CURL. Como faço para impor as regras de segurança definidas no bloco /publish , mas também ainda executar o bloco PHP se o arquivo terminar em .php?

    
por Justin 17.07.2012 / 03:13

1 resposta

5

O nginx aplica apenas um bloco location a uma solicitação.

Use include se quiser compartilhar diretivas entre blocos ou try_files apontando para um @php local, se quiser apontar vários blocos location usando PHP para um único tratamento PHP location .

    
por 17.07.2012 / 03:21

Tags