zoukankan      html  css  js  c++  java
  • 使用htpasswd实现Nginx验证访问

    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 即可。

  • 相关阅读:
    Linux更改文件文件夹所属用户组(chgrp)
    Linux服务器查看请求数
    装Office 2010提示Error 1406的解决方法
    实时数据库简介和比较
    敏捷软件开发模型SCRUM【转】
    实时数据库系统
    实时数据库的事务处理
    各浏览器下使用 OBJECT 元素和 EMBED 元素嵌入 Flash 存在差异
    中国煤矿历年事故死亡人数及分析
    实时/历史数据库和关系型数据库的区别
  • 原文地址:https://www.cnblogs.com/xzlive/p/9492879.html
Copyright © 2011-2022 走看看