Nginx PHP-FPM 基本認証

Nginx PHP-FPM 基本認証

nginxをにphp-fpmインストールしましたDebian Squeeze
ディレクトリ ツリーは次のとおりです。

  • /var/www/mysite
    • インデックス
    • 秘密のフォルダ1
      • 管理者.php
      • 静的.html
    • 秘密のフォルダ2
      • 管理者.php
      • 静的.html
    • ピクチャー
    • 画像01.jpg

secret_folder_1secret_folder_2を閉じる必要がありますbasic_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制限されたフォルダー内のファイルを提供するための最初の場所と、静的ファイルを提供するための 2 番目の場所です。

簡素化できますか?

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

SCRIPT_FILENAME パラメータは$document_rootハードコードではなく変数で定義する必要があることに注意してください/var/www/mysite/

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

関連情報