Lnmp下为Nginx目录设置访问验证的用户名密码

Lnmp下为Nginx目录设置访问验证的用户名密码
有时候需要象Apache那样为指定的目录添加访问验证,一般在Apache下使用htpasswd来添加,而htpasswd是包含在apache2-utils里,一般LNMP一键安装包或自己编译安装LNMP都不会安装apache2-utils。
1、创建类htpasswd文件
执行:wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh
按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如:/usr/local/nginx/conf/vpser.net.auth。
2、为Nginx添加auth认证配置

下面是以某域名下面的soft目录为例,在域名的server段里加上如下代码:

  1. location ^~ /soft/  
  2. {  
  3. auth_basic "Authorized users only";  
  4. auth_basic_user_file 这里写前面脚本返回的文件路径;  
  5. }  

Authorized users only为提示信息,可以修改成自己想让他提示的信息;auth_basic_user_file 后面需要填htpasswd.sh脚本返回的人家文件的路径。按上面的提示修改好配置后,重启nginx,访问http://yourdomainname/soft/ 就会提示输入用户名和密码

注意,加上认证之后该目录下的PHP将不会被解析,会出现下载提示,如果想可以解析PHP可以将上面的配置改为:

  1. location ^~ /soft/ {  
  2. location ~ .*\.(php|php5)?$ {  
  3. fastcgi_pass unix:/tmp/php-cgi.sock;  
  4. fastcgi_index index.php;  
  5. include fcgi.conf;  
  6. #lnmp 1.1以上版本用include fastcgi.conf;替换include fcgi.conf  
  7. }  
  8. auth_basic "Authorized users only";  
  9. auth_basic_user_file 这里写前面脚本返回的文件路径;  
  10. }  

本教程适合LNMP一键安装包或自己安装的LNMP,只不过目录和配置文件可能位置不一样。

设置完执行:/usr/local/nginx/sbin/nginx -t 测试配置是否有错误。

再执行:/usr/local/nginx/sbin/nginx -s reload 载入配置文件。

  • 我的微信
  • 使用微信扫一扫
  • weinxin
  • IT运维交流群
  • 使用QQ扫一扫
  • weinxin
༺小ʚɞ寞༻

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: