Nginx密码保护

时间:2011-01-27 10:26:14

标签: nginx

我需要使用nginx密码保护我的文件夹。

我已使用此规则

    location ^~ /test/
    {
            auth_basic            "Restricted";
            auth_basic_user_file  conf/htpasswd;
    }

但问题是,如果我去/test/file.php它可以工作,它不需要授权。 只有/测试/要求输入密码。

2 个答案:

答案 0 :(得分:1)

我正在使用它:

        location ~ /img/index.php {
        root   /var/www/nginx-default/phpmyedit/;
        auth_basic "phpmyedit";
        auth_basic_user_file /var/www/phpmyedit.pass;
        access_log   /var/log/nginx/img.log;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
         include /etc/nginx/fastcgi_params;
    }

答案 1 :(得分:0)

假设您已正确设置密码,您只需删除路径中的尾部斜杠即可。此外,您不需要规则中的^〜。这是一个例子:

         location /test {
             try_files $uri $uri/ =404;
             auth_basic "Access Denied!";
             auth_basic_user_file /etc/nginx/.htpasswd;
         }

要将新用户添加到密码,请使用以下步骤:

sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd"

这将添加一个新用户:admin到该文件。要为此新用户设置加密密码,请使用:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

系统将提示您输入密码并验证新密码。而已。你们都准备好了!