$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[Lnmp] Linux LNMP下为Nginx目录如何设置访问验证的用户名密码

本帖最后由 jim9 于 2011-7-1 13:43 编辑 0 v' K+ y& S' \6 G

# U3 X5 h% l0 h( T* V
- t2 R# `5 @, G/ {5 w* i8 U' ?+ ^2 C; c/ G
有时候需要象Apache那样为指定的目录添加访问验证,一般在Apache下使用htpasswd来添加,而htpasswd是包含在apache2-utils里,一般LNMP一键安装包或自己编译安装LNMP都不会安装apache2-utils。下面捷飞网络说一下如何为Nginx的网站目录设置访问验证
- k) \: r( U! K* Q8 W0 P
5 ]9 T; [( C; K: L$ `" q5 i1、创建类htpasswd文件
1 S, C  H1 M9 i9 ~* |& [5 S
2 l2 f6 a/ t  ~执行:wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh
) t- c/ F# J3 U按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如:/usr/local/nginx/conf/vpser.net.auth。- E& h% I& d* A# W5 k1 W% p* ?& k
& M1 {0 g: k/ H1 ^
2、为Nginx添加auth认证配置
9 e8 m5 r) E. [* w8 f! ]3 n下面是以某域名下面的soft目录为例,在域名的server段里加上如下代码:
4 \/ M' P( W1 C' S1 @8 slocation ^~ /soft/8 c) e# X: B" D, Q4 z6 W
{+ B5 |% P( Y( V8 ^1 t6 a. `/ n
auth_basic "Authorized users only";  @5 r/ ]! @3 C. U( u' }0 B( y; e
auth_basic_user_file 这里写前面脚本返回的文件路径;
4 [: B5 K, d; Z/ D- V}9 {; {) s# M! T$ {8 o4 B+ q, [
Authorized users only为提示信息,可以修改成自己想让他提示的信息;auth_basic_user_file 后面需要填htpasswd.sh脚本返回的人家文件的路径。按上面的提示修改好配置后,重启nginx,访问http://yourdomainname/soft/ 就会提示输入用户名和密码。( }0 X2 ~% h$ [
注意,加上认证之后该目录下的PHP将不会被解析,会出现下载提示,如果想可以解析PHP可以将上面的配置改为:
, B0 o6 }8 N/ k' {- glocation ^~ /soft/ {! T; H9 U$ W4 K% u; x  |- i
location ~ .*\.(php|php5)?$ {4 s  i" m4 I5 }: E/ q1 c0 }6 `# A7 l0 o
fastcgi_pass unix:/tmp/php-cgi.sock;
$ B3 S) Y" D, Q; K* B/ E; H' G- Vfastcgi_index index.php;
- s/ K6 W2 k! P, `+ H$ n# winclude fcgi.conf;! w6 b( E% U! q  [
}
( Y  H& w$ W; M5 _* Dauth_basic "Authorized users only";
6 `: r* _( \, Nauth_basic_user_file 这里写前面脚本返回的文件路径;
" k* b, I& l6 T}
3 R* w: X& \( z0 n" ?* z6 V' `7 n- }9 n7 E6 d7 b& b' J
本教程适合LNMP一键安装包或自己安装的LNMP,只不过目录和配置文件可能位置不一样。


返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全