nginx如何设置用户访问限制

明天3月8号妇女节了,给项目组里面的唯一美女keke做了个相册,提前祝美女们节日快乐了,由于时间紧迫也没做用户权限系统,索性就用nginx配置了访问限制。
其实主要的是两行当面。

auth_basic_user_file /usr/local/nginx/conf/passwd;
auth_basic 'please input user code'

其中 passwd
是用

htpasswd -c ./passwd  username 

输入两次密码就生成了

这时候又来了需求了,我又想根据不通的ua信息 启用或者禁用 auth_basic
当时思路是把

if ($http_user_agent !~* "ua text string") {
    auth_basic_user_file
    auth_basic
}

这样会报错,这个配置不允许放在 if里面
后来根据设置变量的形式解决了,又get新技能了。苦逼青年欢乐多~

set $auth_basic off;
if ($http_user_agent !~* "ua text string") {
    set $auth_basic Restricted;    
}
auth_basic $auth_basic;    

最后全量代码

listen       80;
server_name keke.ibeeger.com;
index  index.html index.htm default.html default.htm;
root  /data/view/keke;
auth_basic_user_file /usr/local/nginx/conf/passwd;
location / {
    set $auth_basic off;
    if ($http_user_agent !~* "abcdefglalalalal") {
        set $auth_basic Restricted;    
    }
    auth_basic $auth_basic;    
}
access_log /data/logs/keke.log;
文章来源: nginx如何设置用户访问限制