Nginx PHP-FPM基本authentication

我有nginxDebian Squeeze上安装了php-fpm
目录树是:

  • 在/ var / WWW / mysite的
    • 的index.php
    • secret_folder_1
      • admin.php的
      • static.html
    • secret_folder_2
      • admin.php的
      • static.html
    • 图片
    • img01.jpg

我需要用basic_authclosuressecret_folder_1secret_folder_2 。 现在configuration看起来像:

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

相同的configuration为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_rootvariables而不是硬编码/var/www/mysite/来定义SCRIPT_FILENAME参数:

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;