相关文章推荐
健身的苦瓜  ·  酷狗音乐豪华vip年卡·  9 月前    · 
谦和的机器人  ·  超前孵化,“16岁科学家”的国际科学与工程大 ...·  1 年前    · 
怕老婆的沙滩裤  ·  tomcat配置400/404/500类型的 ...·  1 年前    · 
完美的毛衣  ·  我们毕业啦!2024年医学院毕业季·化茧成蝶 ...·  1 年前    · 
千杯不醉的遥控器  ·  合并Typescript中具有匹配相同键的两 ...·  1 年前    · 
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;
 
推荐文章
健身的苦瓜  ·  酷狗音乐豪华vip年卡
9 月前
谦和的机器人  ·  超前孵化,“16岁科学家”的国际科学与工程大奖赛最高奖项目入驻环上大概念验证中心_澎湃号·政务_澎湃新闻-The Paper
1 年前
怕老婆的沙滩裤  ·  tomcat配置400/404/500类型的错误页面,修改项目默认路径,修改默认项目_tomcat400页面替换-CSDN博客
1 年前
完美的毛衣  ·  我们毕业啦!2024年医学院毕业季·化茧成蝶 蜕变之时 | 香港中文大学(深圳)医学院
1 年前
千杯不醉的遥控器  ·  合并Typescript中具有匹配相同键的两个不同的数组对象_合并具有相同键的不同数组中的对象_合并具有相同键的对象数组 - 腾讯云开发者社区 - 腾讯云
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号