一、nginx开启访问验证

使用nginx搭建的站点,如果不想让所有人都能正常访问,那么可以设置访问认证,只有用户输入正确的用户名和密码才能正常访问。

在nginx下,提供了ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具( htpasswd,或者使用 openssl)设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。

二、以htpasswd为例

1、安装htpasswd工具

[root@ren5 ~]# yum -y install nginx           #安装nginx

[root@ren5 ~]# yum -y install httpd-tools          #安装httpd-tools

2、设置指定用户及密码

[root@ren5 ~]# cd /etc/nginx/

[root@ren5 nginx]# touch .passwd                    #创建生成密码的文件

[root@ren5 nginx]# htpasswd -c /etc/nginx/.passwd ren5             #设置用户名和密码,并把用户名、密码保存到指定文件中

New password:

Re-type new password:

Adding password for user ren5

注意:上面的 /etc/nginx/.passwd 是生成密码文件的路径,然后ren5是用户名,你可以根据需要自行设置成其它用户名。运行命令后,会要求你连续输入两次密码。输入成功后,会提示已经为ren5这个用户添加了密码。

[root@ren5 nginx]# cat .passwd          #查看生成的密码文件的内容

ren5:$apr1$Lna.yg7m$n6g9180iZQP7GXJ447CE0/             #用户名ren5,冒号后面是密码(已经加密)

3、修改nginx配置文件

[root@ren5 nginx]# vim nginx.conf            #在第一个server模块下添加

#############################################

location / {

auth_basic "Please input password";

auth_basic_user_file /etc/nginx/.passwd;

}

################################################

[root@ren5 nginx]# nginx -t          #检查配置文件是否有误

[root@ren5 nginx]# systemctl restart nginx              #重启nginx

[root@ren5 nginx]# firewall-cmd --add-port=80/tcp               #添加防火墙端口

Success

4、浏览器访问

出现身份验证

3、htpasswd 命令

三、htpasswd选项参数 

htpasswd [ -c ] [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username

htpasswd -b [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username password

htpasswd -n [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] username

htpasswd -nb [ -m | -B | -d | -s | -p ] [ -C cost ] username password

1、htpasswd命令选项参数说明:

-c 创建一个加密文件

-n 不更新加密文件,只将htpasswd命令加密后的用户名,密码显示在屏幕上

-m 默认htpassswd命令采用MD5算法对密码进行加密

-d htpassswd命令采用CRYPT算法对密码进行加密

-p htpassswd命令不对密码进行进行加密,即明文密码

-s htpassswd命令采用SHA算法对密码进行加密

-b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

-D 删除指定的用户

2、htpasswd例子

(1)用htpasswd命令添加用户

[root@ren5 nginx]# htpasswd -bc .passwd ren001 123

#在当前目录下生成一个.passwd文件,用户名ren001,密码:123,默认采用MD5加密方式

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

[root@ren5 nginx]# htpasswd -b .passwd ren002 456

[root@ren5 nginx]# cat .passwd

ren001:$apr1$Ln1ZsyVn$2hn3VFqP0L5tNA1UCSU8F.

ren002:$apr1$hCiMb9jc$Z.m7ZgOBCj0ISeIieTaVy/

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

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

[root@ren5 nginx]# htpasswd -nb ren002 456

ren002:$apr1$DT53A20W$YRS7p4j.1Wum9q0kG3OQv.

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

(4)用htpasswd命令删除用户名和密码

[root@ren5 nginx]# htpasswd -D .passwd ren002

Deleting password for user ren002

[root@ren5 nginx]# cat .passwd

ren001:$apr1$Ln1ZsyVn$2hn3VFqP0L5tNA1UCSU8F.

(5)用 htpasswd 命令修改密码

[root@ren5 nginx]# htpasswd -D .passwd ren001

Deleting password for user ren001

[root@ren5 nginx]# htpasswd -b .passwd ren001 123456

Adding password for user ren001

Linux进阶之给nginx设置登录用户验证的更多相关文章

  1. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  2. linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法

    在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 ...

  3. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  4. Linux下用于查看系统当前登录用户信息的4种方法

    1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出的信息包括: 用户名称 用 ...

  5. 【linux命令】:查看当前登录用户的信息,本文介绍3种方法

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  6. kibana通过nginx配置访问用户验证

    背景: 现在搭建好了efk,其中kibana是可以在网页上访问的可视化工具,搭建好的kibana默认没有访问控制权限,任何人都能访问,这样存在一些安全隐患和隐私问题.这里我把设置的访问验证过程记录一下 ...

  7. SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

    今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Win ...

  8. Linux系统下强制踢掉登录用户

    1,利用who命令,找出用户登录的终端代号 who root     pts/0        2017-03-14 22:30 (223.1.1.1) root     pts/1        2 ...

  9. linux进阶之远程免密登录,动态添加磁盘及个别基础命令

    一. 免密登录(远程连接ssh) ssh IP   #连接登录到其它机 ssh 192.168.10.102 ssh IP "CMD"   #在其它机器上执行命令 yum -y i ...

随机推荐

  1. 【Git基本命令】

    [基本指令] git init :使目标文件夹变成一个仓库 git add <文件名,含后缀> : 告诉git我要添加文件了 git commit -m "<提交说明> ...

  2. [shell脚本]在Linux终端可视化输出表格数据

    最终效果 1. 自定义表格样式 2. 自定义主题颜色 支持三系普通颜色 支持16色彩虹色 支持单颜色 回顾一下shell语法 1. shell传递参数 我们可以在执行shell脚本时实时传递参数从而指 ...

  3. 当前Activity的onPause执行完后,调用Paused接口

    目录 前言 详细流程分析 activityPaused:1843, ActivityTaskManagerService activityPaused:4930, ActivityRecord com ...

  4. show engine innodb status 输出结果解读

    show engine innodb status 输出结果解读 基于MySQL 5.7.32 最近想整理一下show engine innodb status的解读,但是发现中文互联网上相关的信息要 ...

  5. OO Unit3 总结

    OO Unit3 总结 OO课Unit3人际关系网JML应用技术回顾 BUAA.1823.邓新宇 2020/5/23 梳理JML语言的理论基础.应用工具链情况 方法规格 JML中,同一个方法在不同的条 ...

  6. ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL

    因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付.微信通讯.小程序等的出现,导致很多ASP项目对接起来就比较 ...

  7. 探索使用 Golang 和 Webassembly 构建一个多人游戏服务器

    什么是 WebAssembly?由 Google.Microsoft.Mozilla.Apple 等发起的 WebAssembly 是一种新的字节码格式,主流浏览器都已经支持 WebAssembly. ...

  8. 01- QTP快速入门

    QTP概述 QTP安装流程

  9. python 利用opencv去除图片水印

    python 去除水印"人工"智能去除水印 这两天公司来了一个新的需求--去除水印,对于我一个从未接触过的这种事情的人来说,当时我是蒙的.不过首先我就去搜索了一下是否有该种合适的功 ...

  10. PAT 乙级 -- 1012 -- 数字分类

    题目简介 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4 ...