Nginx PHP-FPM 기본 인증

Nginx PHP-FPM 기본 인증

nginxphp-fpm설치 했습니다 Debian Squeeze.
디렉토리 트리는 다음과 같습니다:

  • /var/www/mysite
    • index.php
    • 비밀_폴더_1
      • admin.php
      • 정적.html
    • 비밀_폴더_2
      • admin.php
      • 정적.html
    • 영화
    • img01.jpg

닫아야 secret_folder_1하고 .secret_folder_2basic_auth이제 구성은 다음과 같습니다.

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

에 대한 동일한 구성입니다 secret_folder_2.

정상인가요? 제한된 폴더의 파일을 제공하는 첫 번째 위치 php와 정적 파일을 제공하는 두 번째 위치를 의미합니다.

단순화할 수 있나요?

답변1

중첩된 위치가 더 나을 수 있습니다.

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_root하드코딩된 대신 변수를 사용하여 SCRIPT_FILENAME 매개변수를 정의해야 합니다 /var/www/mysite/.

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

관련 정보