Nginx对某个目录设置密码保护例子

Nginx可以很容易的对某个目录或location进行密码保护。实现步骤如下:

1. 创建密码文件。使用htpasswd工具生成密码文件,命令如下:

htpasswd -c /path/to/passwd username 

这会在/path/to/passwd文件中创建名为username的用户条目,并提示输入密码。

2. 配置location。在nginx配置文件的server块中,设置要保护的location,并指定密码文件:

location /protected/ {
    auth_basic "Restricted Area";
    auth_basic_user_file /path/to/passwd; 
}

– auth_basic:启用basic认证

– auth_basic_user_file:指定密码文件路径

3. 重新加载配置。执行命令`nginx -s reload`重新加载配置。

4. 访问测试。现在访问http://your-server/protected/目录,将会出现用户名和密码登录提示框。输入步骤1中设置的用户名和密码才可访问。一个完整的例子如下:

passwd文件内容:

username:$apr1$qDiH0qE7$Xlz2ZAEHIjarLe4S5YM/R.

nginx配置:

server {
    listen       80;
    server_name  yourserver;
    charset      utf-8;
    
    location /protected/ {
        auth_basic "Restricted Area";
        auth_basic_user_file /path/to/passwd; 
    }
} 

现在http://yourserver/protected/目录已被密码保护。用户需要输入帐号username和密码qDiH0qE7才能访问。

除了basic认证外,nginx还支持其他认证方式如digest认证。密码文件也可以使用其他工具生成。

通过设置认证,我们可以轻易的对nginx中的敏感目录或资源进行访问控制,实现安全防护。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论