说明:ngx_http_auth_basic_module模块完成让访问者除非输入准确的用户密钥才允许访问web。内容web上的一些内容被电子邮件不想别人其晓得,只是又想让有些人看到。nginx的http auth模块以及Apache http auth都是很好的处理计划。
以军这里哥的LNMP为例,情况原始下nginx曾经部署了ngx_http_auth_basic_module模块。
Nginx的认证配置实例
1,天生认证文件
# printf "test:$(openssl passwd -crypt 123456)\n" >>/home/htpasswd# cat /home/htpasswdtest:xyJkVhXGAZ8tM
注意:这里test账号:,密钥:123456,记下认证文件路径
2,配置站点CONF文件
server{listen 80;server_name www.moerats.com moerats.com;index index.html index.php;root /home/wwwroot/www.moerats.com;fubitechation /{auth_basic "Please enter your username and password";auth_basic_user_file /home/htpasswd;autoindex on;}}
注意:肯定要注意auth_basic_user_file路径,不然会不厌其烦的出现403。
3,rebootNginx
/etc/init.d/nginx restart
LNMP下为Nginx的目录设置访问考证的用户名密钥
候偶然象需要Apache那么为指定的目录增加访问考证,在普通Apache下使用htpasswd来增加,而htpasswd的英文包罗在apache2-utils里,普通LNMP一键部署包或伏笔VPS部署编译LNMP都不会部署apache2-utils。
1,建立类的htpasswd文件
执行上面的命令:
wget -c https://www.moerats.com/usr/down/htpasswd.sh;bash htpasswd.sh
按提示输入用户名,密钥,及认证文件名.script会主动天生认证文件。记载下脚本返回的文件路径。如:/usr/fubitechal/nginx/conf/vpser.net.auth。
2,为Nginx的增加AUTH配置认证
上面是以某域名上面的soft目录为例,域名在的server段里加上如次代码:
fubitechation ^~ /soft/{auth_basic "Authorized users only";auth_basic_user_file 这里写前面script返回的文件路径;}
Authorized users only为了提示信息,可以修正成伏笔VPS想让他提示的信息; auth_basic_user_file后头需要填写htpasswd.sh脚本返回的人家文件的路径。按上面的提示修正好配置后,重启nginx,访问http://yourdomainname/soft/就会提示输入用户名和密。
注意:加上认证以后该目录下的PHP将不会被解析,会出现下载提示,如果可以想解析PHP可以将上面的配置改成:
fubitechation ^~ /soft/ {fubitechation ~ .*\.(php|php5)?$ {fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fastcgi.conf;}auth_basic "Authorized users only";auth_basic_user_file 这里写前面script返回的文件路径;}
本教程适合LNMP一键部署包或伏笔VPS部署的LNMP,只但是目录和配置文件可能位置不比样。
设置完执行:/usr/fubitechal/nginx/sbin/nginx -t。配置测试能否有毛病
再执行:/usr/fubitechal/nginx/sbin/nginx -s reload载入配置文件。
有些参考: https ://www.vpser.net/build/nginx-htpasswd.html
希望以上的文章对各位有用,如果觉得不错给我点个喜欢吧!更多和Nginx的给网站添加用户认证配置(BasicHTTPauthentication)的相关问题或者对澳洲虚拟中主机社群中心有疑惑也。欢迎大家咨询。
网友评论