zoukankan      html  css  js  c++  java
  • nginx之访问控制

      

      Nginx的源码提供了ngx_http_auth_basic_module这个模块,它可以来解决web访问认证的问题。这个模块是默认就编译进nginx的,可以直接拿来使用。

      ngx_http_auth_basic_module它提供了最基本的http认证,这是http协议支持的,它会弹出一个框让你输入用户名和密码,只有用户名和密码输入正确了才能访问,这样就能保证自己的web不被任何人所访问。

      ngx_http_auth_basic_module是使用文件作为存储介质的,用户名是明文存储,而密码是加密之后再存储,这样在认证框输入的用户名和密码必须和文件的信息匹配才能认证成功。这里使用htpasswd这个命令来生成存放用户名和密码的文件。

     
    htpasswd:
      htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。
     
    软件安装
    centos
    
    yum -y  install httpd
    
    ubuntu
    
    sudo apt-get install apache2-utils

    安装完成之后,就可以使用htpasswd命令了

    参数说明:

    -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.

    -n 不更新passwordfile,只将加密后的用户名密码显示在屏幕上;

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

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

    -p 不对密码进行进行加密,即使用普通文本格式的密码

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

    -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互

    -D 删除指定的用户

    基本使用:

    htpasswd -cb /usr/local/nginx/conf/htpasswd lanlang 123456

    更多示例:

    交互模式
    htpasswd -c /application/nginx/conf/htpasswd  lanlang
    
    New password:
    
    Re-type new password:
    
    
    不用交互的模式
    
    htpasswd -bc /application/nginx/conf/htpasswd lanlang 1234565
    
    说明:在/application/nginx/conf/目录下生成一个htpasswd文件,用户名lanlang,密码:123456,默认采用MD5加密方式。
    
    
    在原有密码文件中增加下一个用户
    
    注:去掉-c选项即可在第一个用户之后添加第二个用户
    
    htpasswd -b /application/nginx/conf/htpasswd new-user 1234565
    
    
    不更新密码文件,只在屏幕上输出用户名和经过加密后的密码。
    
    htpasswd -nb lanlang 1234565
    
    
    利用htpasswd命令删除用户名和密码
    
    htpasswd -D /application/nginx/conf/htpasswd lanlang
    
    
    利用htpasswd命令修改密码,
    
    htpasswd 并没有直接修改密码的函数,需要先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能
    
    htpasswd -D /application/nginx/conf/htpasswd lanlang
    
    htpasswd -b /application/nginx/conf/htpasswd lanlang 1234565
    

    nginx添加配置信息

    auth_basic "Please Enter Your Auth Info";
    auth_basic_user_file "/usr/local/nginx/conf/htpasswd";

    最终效果

  • 相关阅读:
    Alibaba 阿里组件 nacos注册中心 gateway网关 flowable流程引擎 vue.js前后分离 spring cloud微服务
    Java JDBC 连接 MySQL8 数据库
    Java设计模式【命令模式】
    Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题
    Java代理模式学习 (Proxy模式)
    Java单例模式浅析 (Singleton模式)
    由歌词引发的模式思考之中篇(AbstractFactory模式)
    Java模拟FilterChain的实现 (Chain Of Responsibility模式)
    由歌词引发的模式思考之上篇(FactoryMethod模式)
    由歌词引发的模式思考之下篇(模拟Spring的BeanFactory)
  • 原文地址:https://www.cnblogs.com/xingxia/p/nginx_access_control.html
Copyright © 2011-2022 走看看