Nginx设置用户验证部署文档Version1.0


更新记录
2011-12-18 Version1.0 

基于Nginx访问的验证方法:
比如,我想在将/data/admin 加一级验证

以下是我完整的配置:

server {

listen 80;
server_name test.com;
root /data;
error_page 403 404 /404.php;
index index.html index.htm index.php;
include php_fcgi.conf;
ssi on;
ssi_silent_errors off;
#ssi_types text/shtml;

location /nginx_status {
stub_status on;
access_log off;
allow all;
}

#auth_passwd
location ^~/admin/ {
#如过想给/目录下所有的做验证则需将上面的修改成location ~ /(.*)
auth_basic "please input you password";
auth_basic_user_file /usr/local/nginx-0.8.46/conf/auth_passwd;
}
}

在虚拟主机对应文件中对应的server段中添加:
location ^~ /admin/ {
auth_basic "please enter you user and password:";
auth_basic_user_file /usr/local/nginx-0.8.46/conf/auth_passwd;
}

touch /usr/local/nginx-0.8.46/conf/auth_passwd
content format:
user:passwd

注:每行一个账户密码必须使用函数crypt(3)加密

vi pw.pl
#############################
#!/usr/bin/perl
use strict;

my $pw=$ARGV[0] ;
print crypt($pw,$pw). "\n";
#############################

[root@jesse ~]# chmod +x pw.pl
[root@jesse ~]# ./pw.pl jesse
jeyH851CPCq3A

jeyH851CPCq3A 就是jesse的crypt()密码
echo "jesse:jeyH851CPCq3A" >> /usr/local/nginx-0.8.46/conf/auth_passwd

注意:如果不用^~ /abc/而用/abc的话那么将只能对目录进行验证直接访问该目录下的文件或目录,将不会弹出登录验证窗口.

 

posted @ 2016-03-26 18:36  study-notes  阅读(132)  评论(0编辑  收藏  举报