Nginx PHP-FPM Basisauthentifizierung

Nginx PHP-FPM Basisauthentifizierung

Ich habe nginxmit php-fpminstalliert auf Debian Squeeze.
Verzeichnisbaum ist:

  • /var/www/meinesite
    • index.php
    • geheimer_Ordner_1
      • admin.php
      • statisch.html
    • geheimer_Ordner_2
      • admin.php
      • statisch.html
    • Bilder
    • img01.jpg

Ich muss schließen secret_folder_1und secret_folder_2mit basic_auth. Jetzt sieht die Konfiguration so aus:

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;
}

Dieselbe Konfiguration für secret_folder_2.

Ist das normal? Ich meine, der erste Speicherort dient zum Bereitstellen phpvon Dateien in eingeschränkten Ordnern und der zweite Speicherort zum Bereitstellen statischer Dateien.

Kann es vereinfacht werden?

Antwort1

Die verschachtelten Standorte könnten besser sein:

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;
    }
}

$document_rootBitte beachten Sie, dass Sie den Parameter SCRIPT_FILENAME mit einer Variablen und nicht fest codiert definieren sollten /var/www/mysite/:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

verwandte Informationen