Nginx是一个高性能的WEB服务器,越来越多的用户使用,如果您的某个站点不希望对外公开(比如PHPMyAdmin),可以使用htpasswd实现Nginx验证访问。

安装htpasswd

htpasswd是Apache密码生成工具,Nginx支持auth_basic认证,因此我门可以将生成的密码用于Nginx中,输入一行命令即可安装:

yum -y install httpd-tools 

参数如下:

-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户

生成密码

#进入home目录
cd /home
#生成密码
htpasswd -c ./passwd username
#执行上命令后会要求输入两次密码,./passwd 是在当前目录下创建密码文件passwd ,username即为需要设置的账号

如果你不想安装htpasswd,也可以通过在线 htpasswd 生成器来完成。

载入配置

接下来在Nginx配置文件中(通常是server段内),加入如下两行,并重载Nginx(service nginx reload)即可生效。

auth_basic "Please input password";   #这里是验证时的提示信息
auth_basic_user_file /home/passwd;

访问测试

再访问站点,提示需要输入用户名和密码才可以访问,此方法适合不宜公开的站点,比如PHPmyadmin,这样可避免被弱口令扫描,无疑再上了一把锁。

实例

利用htpasswd命令添加用户

htpasswd -bc .passwd www.linuxde.net php

在bin目录下生成一个.passwd文件,用户名www.linuxde.net,密码:php,默认采用MD5加密方式。

在原有密码文件中增加下一个用户

htpasswd -b .passwd Jack 123456

去掉-c选项,即可在第一个用户之后添加第二个用户,依此类推。

不更新密码文件,只显示加密后的用户名和密码

htpasswd -nb Jack 123456

不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。

利用htpasswd命令删除用户名和密码

htpasswd -D .passwd Jack

利用htpasswd命令修改密码

htpasswd -D .passwd Jack
htpasswd -b .passwd Jack 123456

即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。

实际样例如下:

nginx配置:

server {
listen 80;
server_name kba.sche.cn; access_log /home/logs/nginx/kba.sche.cn/access_log main;
error_log /home/logs/nginx/kba.sche.cn/error_log;
log_not_found on;
include conf/*.conf;
location / {
proxy_pass http://192.168.1.125:500;
auth_basic "Basic Authentication";
auth_basic_user_file "/home/nginx/htpasswd/kba.htpasswd";
} }

生成密码

创建密码文件并新增用户
htpasswd -c /home//nginx/htpasswd/kba.htpasswd tom
回车提示输入两次设置的密码 新增其他用户,默认加密策略
htpasswd -b /home/nginx/htpasswd/kba.htpasswd jack Jk123

重启nginx 即可。

使用htpasswd实现Nginx验证访问的更多相关文章

  1. Nginx的访问认证

    1.设置访问认证的作用: 在实际的工作中,有时候我们会接到给网站加密的任务,就是需要有用户名和密码才能访问网站的内容,这个一般会是在企业的内部web服务上面来实现,其实也很简单就两个参数 语法: lo ...

  2. Nginx配置访问权限

    基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Ngi ...

  3. 解决nginx无法访问的问题

    解决nginx无法访问的问题 解决方案-->恢复Nginx默认配置: cd /usr/local/nginx/conf rm nginx.conf cp nginx.conf.default n ...

  4. 修改nginx的访问目录以及遇到的403错误修改总结

    对于这个问题困扰了我好几天,前篇文章介绍了图片服务器的使用,但是两个服务器如何进行通话访问呢,即如何通过nginx来访问ftp服务器上的资源文件呢,这里面需要修改nginx的配置文件(vi /usr/ ...

  5. Nginx限制访问次数和并发数

    Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击) http: ##zone=one或allips 表示设置名为"one"或"allips&q ...

  6. nginx 无法访问root权限的文件内容

    问题: 按照的nginx,nginx配置的user  是 nginx,nginx 是root用户启动的.  文件夹A放的那啥是root用户上传的文件. 可 nginx 无法访问 到  文件. 方法: ...

  7. 【yii2从Apache迁移到nginx上访问报500错误】

    [yii2从Apache迁移到nginx上访问报500错误] 今天迁移yii2项目从Apache到nginx,出现了几个小问题,记录一下 index.php 加上 error_reporting(E_ ...

  8. Nginx的访问日志配置信息详解

    Nginx的访问日志可以让我们知晓用户的地址,网站的那些部分最受欢迎,以及用户浏览时间等.Nginx会把每个用户的访问日志记录到指定的日志文件中. Nginx主要有两个参数来控制 log_format ...

  9. 【转】nginx禁止访问某个文件和目录(文件夹)

    nginx禁止访问所有.开头的隐藏文件设置 location ~* /.* {deny all;} nginx禁止访问目录, 例如:禁止访问path目录 location ^~ /path {deny ...

随机推荐

  1. 第三次Sprint-最后冲刺

    由于一些原因,导致我和汝婷被退队了.因此我们是从上星期重新开始做系统. 陈汝婷单独负责: 1.用户输入题目数: 2.限制题数: 3.自动生成用户需要题目数的题目: 4.计时 练丽云单独: 1.异常处理 ...

  2. Java的Spring内实现的mini版内存"计数器"功能

    工期紧急,不让用Redis,自己实现了一个Spring内的mini版内存"计数器"功能,很简陋,和业务耦合太紧密,需要改进. public Long getCreationCoun ...

  3. 形象地理解Cookie和Session

    Cookie和Session的形象理解 通过实际生活中的银行卡来理解Cookie和Session间的关系: Cookie相当于银行卡 Session相当于银行账户 结合到银行存钱和取钱的过程来理解: ...

  4. Async和Await 异步方法

    Async和Await关键字是C#异步编程的核心.通过使用这两个关键字,你可以使用.NET Framework或Windows Runtime的资源创建一个异步方法如同你创建一个同步的方法一样容易.通 ...

  5. 14Junit、反射、注解

    14Junit.反射.注解 14.1.1 Junit的概述      一般IDE都内置了junit,若需要自行下载jar包,可以访问官网,官网地址如下:http://www.junit.org 1. ...

  6. 面向对象基础及UML建模语言

    1.面向对象的方法起源于面向对象程序设计语言,其发展过程大体经历了初始阶段.发展阶段和成熟阶段. 2.面向对象方法主要优点 (1)从认识论的角度可以看出,面向对象方法改变了开发软件的方式. (2)面向 ...

  7. VMware vCenter 6.0 安装及群集配置介绍

    一.介绍 VMware vCenter Server 提供了一个可伸缩.可扩展的平台,为虚拟化管理奠定了基础.可集中管理VMware vSphere环境,与其他管理平台相比,极大地提高了 IT 管理员 ...

  8. mysql 免安装版 启动服务马上关闭

    在my.ini 加入这一句 1.直接在后面加上一下的参数 [mysqld] port=3306 basedir=D:\mysql-5.7.17-win32 datadir=D:\mysql-5.7.1 ...

  9. 洛谷P4768 [NOI2018]归程(可持久化并查集,最短路)

    闲话 一个蒟蒻,在网络同步赛上进行了这样的表演-- T2组合计数不会,T3字符串数据结构不会,于是爆肝T1 一开始以为整个地图都有车,然后写了2h+的树套树,终于发现样例过不去 然后写可持久化并查集D ...

  10. 自学Python1.6-Centos内英文语法切换

    自学Python之路 自学Python1.6-Centos内中英文语法切换 测试采用是官方Centos7.0系统 1.添加中文输入法 打开设置---区域和语言--->在输入源最下面有一个 + 号 ...