对于实现访问网站或目录密码认证保护,nginx的HTTP基本认证模块(HTTP Auth Basic)可以实现.
这个模块提供基于用户名与密码的验证来保护你的站点或站点的一部分。
step1:
打开conf/nginx.conf文件,添加下面的指令:
location  /  {
auth_basic            "Restricted";
auth_basic_user_file  webpass;
}
解释:
auth_basic
指令包含一个具有测试用户名和密码的HTTP基本认证,指定的参数将用于认证域。如果将值设置为“off”则忽略下级指令继承的动作。
auth_basic_user_file
指令为验证域指定了密码文件,0.6.7版本以后这里指定的文件是nginx.conf所在目录的相对路径,而不是–prefix指定的路径。
“Restricted" 单词将会出现在第一次访问Nginx站点的弹出框内。
webpass是一个文件,位于conf目录下。注意如果你 设置的是 conf/webpass,这个webpass文件应该在conf/conf/目录下。
或者避免麻烦,直接用绝对路径。
step2:
创建pwd文件。添加你的用户名和密码(明文)
这个密码会在第三步被替换
这个文件格式如下:
user:770328
user2:pass2
user3:pass3
step3:
安装Apache2 工具。
[root@REKFAN /]# apt-get install apache2-utils
step4:
使用Apache2工具修改密码。
[root@REKFAN /]# htpasswd /usr/nginx/conf/webpass user  
你会被要求输入两次密码。
现在pwd文件内容改变了:
[root@REKFAN /]# vim /usr/nginx/conf/webpass
user:$apr1$I2FIVtPG$I51oSU4eatH.tJdnmxG6K0  
———————————————————-
如果没有apache的htpasswd程序,可以使用pl程序生成:
程序地址:http://trac.edgewall.org/export/10890/trunk/contrib/htpasswd.py
使用方法: ./htpasswd.py -b -c webpass admin 123456
 webpass为密码文件,admin是用户名,123456是密码.
step5: 重新启动Nginx服务。
[root@REKFAN /]# service nginx restart
step6: 登录你的站点。
例子:

如果是为了给网站加上认证,可以直接将认证语句写在nginx的配置server段中。

如果是为了给目录加上认证,就需要写成目录形式了。同时,还要在目录中加上php的执行,否则php就会被下载而不执行了。

例如:基于整个网站的认证,auth_basic在php解释之前。

server  
{  
    listen 80;  
    server_name www.Rekfan.com Rekfan.com;  
    root /www/Rekfan.com;  
    index index.html index.htm index.php;  
    auth_basic "input you user name and password";  
    auth_basic_user_file /usr/local/nginx/conf/vhost/nginx_passwd;  

    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    location ~ /.ht  
    {  
        deny all;  
    }  
    access_log /logs/Rekfan.com_access.log main;  
}

针对目录的认证,在一个单独的location中,并且在该location中嵌套一个解释php的location,否则php文件不会执行并且会被下载。auth_basic在嵌套的location之后。

server  
{  
    listen 80;  
    server_name www.rekfan.com Rekfan.com;  
    root /www/Rekfan.com;  
    index index.html index.htm index.php;  
    location ~ ^/admin/.*  
    {  
    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    auth_basic "auth";  
    auth_basic_user_file /usr/local/nginx/conf/vhost/auth/admin.pass;  

    }  
    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    location ~ /.ht  
    {  
        deny all;  
    }  
    access_log /logs/Rekfan.com_access.log main;  
}

这里有一个细节,就是location ~ ^/admin/.* {…} 保护admin目录下的所有文件。如果你只设了/admin/ 那么直接输入/admin/index.php还是可以访问并且运行的。 ^/admin/.* 意为保护该目录下所有文件。当然,只需要一次认证。并不会每次请求或每请求一个文件都要认证一下。

Nginx Http认证 实现访问网站或目录密码认证保护相关推荐

  1. Nginx只允许域名访问网站,禁止使用IP 访问80,443端口

    转载来源 :Nginx只允许域名访问网站,禁止使用IP 访问80,443端口 :http://www.safebase.cn/article-260225-1.html 摘要: 一.背景 为了避免别人 ...

  2. 网站安全狗安装时服务器名,解决网站安全狗安装后访问网站需要用户名密码的方法...

    安装网站安全狗后访问网站需要用户名和密码怎么办?很多用户反应,安装网络安全狗后访问网站需要用户名和密码才能访问,这是怎么回事?如果每次访问网站都需要用户名和密码,那不是很麻烦?这该怎么解决?接下来小编 ...

  3. 网站安全之nginx的配置创建访问网站密码认证

    最近我们Sinesafe在处理nginx+php+mysql架构的客户网站安全方面要配置后台的二级密码访问验证处理过程中要用到nginx的配置来完成这个二级密码的设置安全部署. 下面由我来简要说一下在 ...

  4. 京东一面,面试官问我如何用 Nginx 禁止国外 IP 访问网站,我直接凉凉!

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 4 分钟. 来自:toutiao.com/i6860736292339057156/ 之前看了下 Nginx 的访问日志,发现 ...

  5. 京东一面:Nginx 禁止国外 IP 访问网站!

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 来源:toutiao.com/i6860736292339057156 先来说说为啥要写这篇文章,之前小编看了下ngi ...

  6. 如何用 Nginx 禁止国外 IP 访问网站!

    之前看了下 Nginx 的访问日志,发现每天有好多国外的 IP 地址来访问我的网站,并且访问的内容基本上都是恶意的.因此我决定禁止国外 IP 来访问我的网站. 想要实现这个功能有很多方法,下面我就来介 ...

  7. nginx禁止国外IP访问网站

    一.安装 geoip2 扩展依赖 [root@localhost ~]# yum install libmaxminddb-devel -y 二.下载 ngx_http_geoip2_module 模 ...

  8. nginx屏蔽某些地区访问网站

    背景:用aws e2实例部署了一个网站 需求:屏蔽国内用户访问 实现:通过nginx aws自己提供  CloudFront 功能 地理限制功能,可惜是收费的,为了节约资源我就找了免费的实现方式 1. ...

  9. 【ESP 保姆级教程】玩转emqx认证篇③ ——认证安全之使用 MySQL 的密码认证

    忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️ ❤️ 本篇创建记录 2023-01-16 ❤️ ❤️ 本篇更新记录 2023-01-16 ❤️

最新文章

  1. php计算格子xy,经纬度BL和直角坐标XY的正算反算 PHP代码
  2. Java项目:农业计算工具(java+swing)
  3. Asp.Net Core写个共享磁盘文件Web查看器
  4. JS设计模式——3.封装与信息隐藏
  5. 016 在大数据中,SSH无密钥登录
  6. mac 上的环境变量配置
  7. linux与shell编程指南,LINUX与UNIX SHELL编程指南
  8. EasyUI中Numberbox的简单使用
  9. oracle简写sql,Oracle通过sqlplus编辑sql命令
  10. 网易智企斩获“2021全球新经济卓越成就奖”两项大奖
  11. Git命令集之八——提交命令
  12. clang编译c语言,clang没有编译c程序?
  13. java Math 方法
  14. 可变参数函数的一个简单例子
  15. Kubernetes 小白学习笔记(21)--kubernetes的运维-管理Lable
  16. 计算机中的cmd是什么意思,计算机中的cmd是什么意思,全称是什么
  17. 蜂鸣器音乐代码 天空之城_歌单 | 音乐拥有魔力
  18. 【39】给定一个无重的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复
  19. 测试独立显卡坏,可以将显示器接口插在集成显卡上试试
  20. 图文详解:如何给女朋友解释什么是微服务?

热门文章

  1. 转载 .net面试题大全(有答案)
  2. RHEL5下NFS服务器配置与应用
  3. docker删除es数据_Docker的常用命令
  4. 用 C 语言开发一门编程语言 — 跨平台的可移植性
  5. C 语言编程 — 异常处理
  6. VSCode中屏蔽文件files.exclude和屏蔽文件搜索search.exclude
  7. U-Boot常用命令
  8. stm32 Boot0,Boot1引脚设置
  9. shell中sed命令的用法
  10. 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包