Nginx PHP-FPM 基本身份验证

Nginx PHP-FPM 基本身份验证

我已经nginx安装php-fpmDebian Squeeze
目录树是:

  • /var/www/我的网站
    • 索引.php
    • secret_folder_1
      • 管理员账户
      • 静态.html
    • secret_folder_2
      • 管理员账户
      • 静态.html
    • 图片
    • 图片01.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;

相关内容