一、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

转载于:https://www.cnblogs.com/renyz/p/11373394.html

Linux进阶之给nginx设置登录用户验证相关推荐

  1. 嵌入式arm linux设置登录用户和用户密码

    最近在开发基于arm linux的集中器,出于保护系统的目的,需要给系统设置登录用户名和密码,因此就在网上查询了下怎样给嵌入式arm linux系统设置登录用户名和密码的方法,结果如下: 设置登录用户 ...

  2. 安卓开发 登录用户信息缓存_在Linux上使用finger命令查询登录用户信息

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解finger命令的作用和日常使用案例. f ...

  3. MySQL基础|设置登录用户权限,访问ip地址---防止数据库误删,详细版

    对于公司的开发团队来说,需要协同维护同一个数据表,但是要防止新人因为代码不熟悉或者什么其他原因,把整个数据表给删除掉. 毕竟对于公司来说,一个程序是可以复刻的,但是极具商业价值的数据表却是长时间才能积 ...

  4. Nginx设置登录验证

    Nginx设置登录验证 Nginx部署的项目在公网上,有时我们不希望谁都可以访问,因此需要设置登录验证信息来防止其无关人看到敏感信息. htpasswd命令产生生成密码文件 如果没有htpasswd命 ...

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

    SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法 参考文章: (1)SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决 ...

  6. Linux系统下如何查看已经登录用户

    虽然前面介绍了用户管理,但是那部分主要是管理用户的帐号,也就静态的用户列表.而LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务.系统管理员可以随时了解系统中有那些用户,用户 ...

  7. Linux学习笔记(四)之查看登录用户

    1.在多用户操作系统中系统管理员为了系统管理的需要和系统安全,通常需要了解当前是什么用户登录系统.有多少用户登录系统.这些用户在做什么.普通用户之间如果要进行通信交流时,也需要知道对方是否已经登录上系 ...

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

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

  9. Linux 命令之 who -- 打印当前登录用户/显示目前登入系统的用户信息。

    文章目录 命令介绍 常用选项 参考示例 打印用户登录信息 打印全面的信息 打印系统登录进程 显示登录系统的所有用户名称和总人数 命令介绍 who 命令用来打印当前登录用户信息,包含了系统的启动时间 . ...

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

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

最新文章

  1. 新型人造DNA结构信息密度加倍
  2. python身份运算符的语法规则_7 Python语法入门之与用户交互、运算符
  3. 基于FastJson的通用泛型解决方案
  4. HaoZip(好压) 去广告纯净版 4.4
  5. 对List中对象的去重
  6. 云炬WEB开发笔记3-1 项目初始化概要
  7. git 版本控制系统初学
  8. Maven项目导入到Eclipse时Build出现the user operation is waiting for building workspace to complete的问题解决
  9. 读《突然就走到了西藏》 | 保持呼吸,继续向前
  10. 本科毕业论文EndNote格式
  11. oracle写一个全量刷新,Oracle物化视图定时全量刷新以致归档日志骤增
  12. matlab输出神经网络权值,matlab神经网络能做什么
  13. 使用QImage生成纯透明png图片
  14. 提升项目经理的有效路径之一:学习PMP项目管理
  15. Error connecting to the target: (Error -6305) PRSC module failed to write to to a register
  16. 宝塔如何使用一个IP地址建立多个站点
  17. python 求x的 n次方
  18. 高德地图 动态渲染marker
  19. ChemDraw Professional for Mac 16.0.1.4 专业的生物化学绘图软件
  20. RPA机器人流程自动化

热门文章

  1. Http client to POST using multipart/form-data
  2. DataGridView获得所有选中行的某列的值
  3. mysql的binary安装
  4. AS 中强制类型转换
  5. 7台不同配置M1 MacBook Pro真实测试
  6. Photoshop 入门教程,处理图层「4」如何向多图层图像中添加更多图像?
  7. 故障排除:如何解决常见的 Mac 问题?
  8. 手动实现一个vue的mvvm,思路解析
  9. Oracle基础学习(四) 游标
  10. Greenplu数据库的部署