Nginx下配置Http Basic Auth保护目录

博客已经搬家,请访问如下地址:http://www.czhphp.com

Nginx下的配置也挺方便的,我们可以沿用由Apache的htpasswd模块生成的.htpasswd文件作为密码文件。注意,nginx 的 http auth basic 的密码是用 crypt(3) 加密的,而apache是md5加密。所以生成时:

/usr/local/apache2/bin/htpasswd -c -d pass_file user_name

#回车输入密码,-c 表示生成文件,-d 是以 crypt 加密

对于lnmp用户,一般不安装apache了,文末老N会告诉你个生成方法。

我们将这个htpasswd文件放到nginx/conf下,记得chmod 400 htpasswd来保护一下。

然后修改nginx.conf:

server {

server_name d8.neolee.com;
root /var/www/d8.neolee.com;
include /etc/nginx/fastcgi_php;
location / {
    auth_basic "Password please";
    auth_basic_user_file /usr/local/nginx/conf/htpasswd;
    index index.php;
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php last;
    }

}

}

加入了

 

auth_basic  "please input password"

auth_basic_user_file  /usr/local/nginx/conf/htpasswd;

 
重启nginx即可。

给了例子看看,请访问http://d8.neolee.com 用户名neo 密码123

========

最后我们说下怎么在nginx下生成htpasswd

下载这个python文件:http://trac.edgewall.org/export/10770/trunk/contrib/htpasswd.py (nginx wiki里推荐的)

运行示例

chmod 755 htpasswd.py

./htpasswd.py -c -b htpasswd username password

#-c为生成文件 htpasswd为文件名

博客已经搬家,请访问如下地址:http://www.czhphp.com

posted @ 2012-07-05 13:36  曹振华  阅读(603)  评论(0编辑  收藏  举报