相关文章推荐
聪明的炒粉  ·  Nginx设置目录浏览模式 - 没有星星的夏季 ·  3 周前    · 
烦恼的四季豆  ·  VSCode搭建CocoaPods调试环境·  9 月前    · 
一直单身的冰棍  ·  探秘小升初:高新区(滨江)篇---杭州滨兰实 ...·  1 年前    · 
有情有义的柳树  ·  magento2.4.5 - ...·  2 年前    · 
帅气的领带  ·  热血合唱团(2020年刘德华、吴岱融主演的电 ...·  2 年前    · 
开心的大海  ·  金龙鱼也不香了:伪“油茅”为何不值6000亿 ...·  2 年前    · 
Code  ›  Nginx给网站添加用户认证配置( Basic HTTP authentication)开发者社区
nginx
https://cloud.tencent.com/developer/article/1157921
天涯
2 年前
作者头像
用户1202364
0 篇文章

Nginx给网站添加用户认证配置( Basic HTTP authentication)

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 小车博客 > Nginx给网站添加用户认证配置( Basic HTTP authentication)

Nginx给网站添加用户认证配置( Basic HTTP authentication)

作者头像
用户1202364
发布 于 2018-07-09 17:36:48
7.3K 0
发布 于 2018-07-09 17:36:48
举报

说明: ngx_http_auth_basic_module 模块实现让访问者只有输入正确的用户密码才允许访问 web 内容。 web 上的一些内容不想被其他人知道,但是又想让部分人看到。 nginx 的 http auth 模块以及 Apache http auth 都是很好的解决方案。

《Nginx给网站添加用户认证配置( Basic HTTP authentication)》

这里以军哥的 LNMP 为例,默认情况下 nginx 已经安装了 ngx_http_auth_basic_module 模块。

Nginx认证配置实例

1、生成认证文件

# printf "test:$(openssl passwd -crypt 123456)\n" >>/home/htpasswd
# cat /home/htpasswd 
test: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;       
       location /
                auth_basic "Please enter your username and password";
                auth_basic_user_file /home/htpasswd; 
                autoindex on;
}

注意: 一定要注意 auth_basic_user_file 路径,否则会不厌其烦的出现403。

3、重启Nginx

/etc/init.d/nginx restart

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

有时候需要象 Apache 那样为指定的目录添加访问验证,一般在 Apache 下使用 htpasswd 来添加,而 htpasswd 是包含在 apache2-utils 里,一般 LNMP 一键安装包或自己编译安装 LNMP 都不会安装 apache2-utils 。

1、创建类htpasswd文件 执行下面命令:

wget -c https://www.moerats.com/usr/down/htpasswd.sh;bash htpasswd.sh

按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如: /usr/local/nginx/conf/vpser.net.auth 。

2、为Nginx添加auth认证配置 下面是以某域名下面的 soft 目录为例,在域名的 server 段里加上如下代码:

location ^~ /soft/
auth_basic "Authorized users only";
auth_basic_user_file 这里写前面脚本返回的文件路径;
}

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

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

location ^~ /soft/ {
    location ~ .*\.(php|php5)?$ {
        fastcgi_pass unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
 
推荐文章
聪明的炒粉  ·  Nginx设置目录浏览模式 - 没有星星的夏季
3 周前
烦恼的四季豆  ·  VSCode搭建CocoaPods调试环境
9 月前
一直单身的冰棍  ·  探秘小升初:高新区(滨江)篇---杭州滨兰实验学校(初中部)
1 年前
有情有义的柳树  ·  magento2.4.5 - Magento upgrade error 2.4.5 in php 8.1 json_decode(): Passing null to parameter #1 ($
2 年前
帅气的领带  ·  热血合唱团(2020年刘德华、吴岱融主演的电影)_搜狗百科
2 年前
开心的大海  ·  金龙鱼也不香了:伪“油茅”为何不值6000亿 净利腰斩|金龙鱼_新浪财经_新浪网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号