Autenticación básica Nginx PHP-FPM

Autenticación básica Nginx PHP-FPM

nginxLo tengo php-fpminstalado en Debian Squeeze.
El árbol de directorios es:

  • /var/www/misitio
    • index.php
    • carpeta_secreta_1
      • administrador.php
      • estático.html
    • carpeta_secreta_2
      • administrador.php
      • estático.html
    • fotos
    • img01.jpg

Necesito cerrar secret_folder_1y secret_folder_2con basic_auth. Ahora la configuración se ve así:

location ~ /secret_folder_1/.+\.php$
{
        root /var/www/mysite/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  /var/www/mysite$fastcgi_script_name;
        include        fastcgi_params;
        auth_basic "Restricted Access";
        auth_basic_user_file /path/to/.passwd;
}

location ~ /secret_folder_1/.*
{
        root /var/www/mysite/;
        auth_basic "Restricted Access";
        auth_basic_user_file /path/to/.passwd;
}

Misma configuración para secret_folder_2.

¿Es normal? Quiero decir, la primera ubicación para entregar phparchivos en una carpeta restringida y la segunda ubicación para entregar archivos estáticos.

¿Se puede simplificar?

Respuesta1

Las ubicaciones anidadas pueden ser mejores:

location /secret_folder_1 {
    root /var/www/mysite/;
    auth_basic "Restricted Access";
    auth_basic_user_file /path/to/.passwd;

    location ~* \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        include        fastcgi.conf;
    }
}

Tenga en cuenta que debe definir el parámetro SCRIPT_FILENAME con $document_rootuna variable en lugar de codificado /var/www/mysite/:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

información relacionada