全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2431|回复: 1

[nginx] Nginx下配置Http Basic Auth保护目录

[复制链接]
发表于 2011-7-24 16:44:19 | 显示全部楼层 |阅读模式
下午研究了下,或许大家有需要

一直在Apache下使用HTTP basic auth(.htpasswd)来保护网站的某些目录的访问,现在VPS上换成了Nginx同样需要保护一下。

Nginx下的配置也挺方便的,我们可以沿用由Apache的htpasswd模块生成的.htpasswd文件作为密码文件。注意,nginx 的 http auth basic 的密码是用 crypt(3) 加密的,而apache是md5加密。所以生成时:
  1. /usr/local/apache2/bin/htpasswd -c -d pass_file user_name
  2. #回车输入密码,-c 表示生成文件,-d 是以 crypt 加密。
复制代码
对于lnmp用户,一般不安装apache了,文末会告诉你个生成方法。

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

然后修改nginx.conf:


  1. server {
  2.     server_name d8.neolee.com;
  3.     root /var/www/d8.neolee.com;
  4.     include /etc/nginx/fastcgi_php;
  5.     location / {
  6.         auth_basic            "p-assword please";
  7.         auth_basic_user_file  /usr/local/nginx/conf/htpasswd;
  8.         index index.php;
  9. …………
  10.         }
  11.     }
  12. }
复制代码
加入了
  1. auth_basic            "p-assword please";
  2. 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里推荐的)

运行示例
  1.         chmod 777 htpasswd.py
  2. ./htpasswd.py -c -b htpasswd username password
  3. #-c为生成文件 htpasswd为文件名
复制代码
大家可以到本人小博 http://neolee.com/web/nginx-http-basic-auth/ 做个交流

[ 本帖最后由 neolee 于 2011-7-24 16:48 编辑 ]

评分

参与人数 1威望 +10 收起 理由
wdlth + 10 共享资源的时候加上,你们懂的。 ...

查看全部评分

 楼主| 发表于 2011-7-24 16:49:07 | 显示全部楼层
许久不在dz下插入代码了,好累啊。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-4 11:41 , Processed in 0.059419 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表