stormlly

这世界上的天才比我们通常想象的要少得多,但凡人所能达到的成就却也比我们通常想象的要伟大得多。 这些凡人做出了令人刮目相看的事情、营造了令人向往的环境,仅仅是因为他们保持着自己向上的心。
Nginx 使用 http auth basic 认证
使用 nginx 作为前端服务器。某些资源要保护。用 http auth basic 认证简单方便。
nginx 的 http auth basic 的密码是用 crypt(3) 加密的。具体可以参考:http://wiki.nginx.org/HttpAuthBasicModule

 

以我们做一个简单的后台管理为例, 地址:http://xxxx/admin/*, 对admin 下面的文件进行权限管理;

1. 进入ngnix配置的地址,以我的ubuntu为例;  cd /etc/ngnix 

2. 使用命令生成passfile 文件: htpasswd -c -d /etc/nginx/pass_file  username

   a. 输入以上命令,回车输入密码,再次回车,输入确认密码 

3. 检查pass_file是否已经存在 /etc/ngnix/pass_file

4. 修改ngnix 配置


location ~ /admin {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/pass_file;//请使用绝对路径
        root   /home/www/admin; //host 地址,不然认证通过之后,找不到对应的文件
}  
5. 重启ngnix ,sudo service ngnix reload;

6. 登录 http://xxxx/admin/*,弹出验证框,说明验证配置完成

 

如果admin中有php,就会发现 php url不能正常的解析,我们需要重新配置,配置如下:

 

location ~ /admin { 

auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/pass_file;//请使用绝对路径
        root   /home/www/admin; //host 地址,不然认证通过之后,找不到对应的文件
if ($request_filename ~* .php)
        {
         fastcgi_pass   127.0.0.1:9000;
     }//下面的文件不能放在括号中,否则会报错
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /home/www/admin$fastcgi_script_name;//路径同root
        include fastcgi_params;

}  

 

 修改配置,重启ngnix即可,php文件显示正常

 

posted on 2011-11-10 15:34  storm_liu  阅读(9317)  评论(0编辑  收藏  举报