============================================================================================ 一直在Apache下使用HTTP basic auth(.htpasswd)来保护网站的某些目录的访问,现在VPS上换成了Nginx同样需要保护一下。 Nginx下的配置也挺方便的,我们可以沿用由Apache的htpasswd模块生成的.htpasswd文件作为密码文件。注意,nginx 的 http auth basic 的密码是用 crypt(3) 加密的,而apache是md5加密。所以生成时: [size=1em][size=1em]1 | /usr/local/apache2/bin/htpasswd -c -d pass_file user_name |
[size=1em]2 | #回车输入密码,-c 表示生成文件,-d 是以 crypt 加密。 |
对于lnmp用户,一般不安装apache了,文末老N会告诉你个生成方法。 我们将这个htpasswd文件放到nginx/conf下,记得chmod 400 htpasswd来保护一下。 然后修改nginx.conf: [size=1em][size=1em]
[size=1em]02 | server_name d8.neolee.com; |
[size=1em] 03 | root /var/www/d8.neolee.com; |
[size=1em] 04 | include /etc/nginx/fastcgi_php; |
[size=1em]
[size=1em] 06 | auth_basic "Password please"; |
[size=1em] 07 | auth_basic_user_file /usr/local/nginx/conf/htpasswd; |
[size=1em]
[size=1em] 09 | if (!-e $request_filename) { |
[size=1em] 10 | rewrite ^(.*)$ /index.php last; |
[size=1em]
[size=1em]
[size=1em]
加入了 [size=1em][size=1em]1 | auth_basic "Password please"; |
[size=1em]2 | auth_basic_user_file /usr/local/nginx/conf/htpasswd; |
重启nginx即可。
======== 最后我们说下怎么在nginx下生成htpasswd 下载这个python文件:http://trac.edgewall.org/export/10770/trunk/contrib/htpasswd.py (nginx wiki里推荐的) 运行示例 [size=1em][size=1em]
[size=1em]2 | ./htpasswd.py -c -b htpasswd username password |
[size=1em]
|