Chinaunix首页 | 论坛 | 博客
  • 博客访问: 373975
  • 博文数量: 48
  • 博客积分: 1032
  • 博客等级: 上士
  • 技术积分: 1256
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-19 13:24
文章分类

全部博文(48)

文章存档

2014年(3)

2013年(23)

2012年(22)

分类: LINUX

2013-03-01 09:58:15

原文地址:nginx的目录加密或用户验证 作者:

nginx的用户验证和apache差不多
1.在配置文件中添加验证语句:
  添加auth_basic "auth user" //名字任起
      auth_basic_user_file  /etc/nginx/htpasswd.conf   //目录自己定
2.创建上面所定的目录/etc/nginx/htpasswd.conf
  利用apache所带的密码生成工具htpasswd(密码必须是crypt加密的)
  /usr/bin/htpasswd -nb user passwd
  or
  /usr/bin/htpasswd  -c /etc/nginx/htpasswd.conf  user
3.修改配置文件
 
  1. server {
  2.         listen 8084;
  3.         server_name localhost;
  4. # auth_basic "auth user";
  5.  # auth_basic_user_file /etc/nginx/htpasswd.conf;

  6.         #charset koi8-r;

  7.         #access_log logs/host.access.log main;

  8.         location / {
  9.             root /mnt/ ;
  10. # auth_basic "auth user";
  11. # auth_basic_user_file /etc/nginx/htpasswd.conf;
  12.             index index.php index.html index.htm;
  13. location ~ ^/admin/.* {

            location ~ \.php$ {

                fastcgi_pass  127.0.0.1:9000;

                fastcgi_index index.php;

                include fastcgi_params;

            }

            auth_basic "auth";

            auth_basic_user_file /usr/local/nginx/conf/vhost/auth/admin.pass;

        }


  14.         }

就是location ~ ^/admin/.* {…} 保护admin目录下的所有文件。如果你只设了/admin/ 那么直接输入/admin/index.php还是可以访问并且运行的。 ^/admin/.* 意为保护该目录下所有文件。当然,只需要一次认证。并不会每次请求或每请求一个文件都要认证一下。

针对目录的认证,在一个单独的location中,并且在该location中嵌套一个解释php的location,否则php文件不会执行并且会被下载。



阅读(3233) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~