Nginx PHP-FPM 基本驗證

Nginx PHP-FPM 基本驗證

我已經nginx安裝php-fpmDebian Squeeze.
目錄樹是:

  • /var/www/我的網站
    • 索引.php
    • 秘密_資料夾_1
      • 管理文件
      • 靜態.html
    • 秘密_資料夾_2
      • 管理文件
      • 靜態.html
    • 圖片
    • img01.jpg

我需要關閉secret_folder_1secret_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;

相關內容