Nginx

Nginx PHP-FPM 基本認證

  • September 29, 2012

我已經nginx安裝php-fpmDebian Squeeze.

目錄樹是:

  • /var/www/mysite

    • 索引.php

    • 秘密文件夾 1

      • 管理員.php
      • 靜態.html
    • secret_folder_2

      • 管理員.php
      • 靜態.html
    • 圖片

    • img01.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在受限文件夾中提供文件的第一個位置,以及提供靜態文件的第二個位置。

可以簡化嗎?

嵌套位置可能更好:

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;

引用自:https://serverfault.com/questions/334755