Nginx 入门之-配置密码访问:访问网页需输入用户名密码

  1. 1. 安装密码生成工具
  2. 2. 生成用户和密码文件
  3. 3. 配置 Nginx 认证
  4. 4. 重启/重载Nginx使站点的认证生效
  • 参考
  • 需要实现的需求如下:

    使用 Nginx 做 web 服务,但由于安全问题需求,访问网页时需要输入用户名和密码进行认证。

    1. 安装密码生成工具

    $ yum  -y install httpd-tools
    

    2. 生成用户和密码文件

    生成用户和密码

    $ htpasswd -c $PWD/password/password.db this-is-user-name
    # 回车后输入密码
    # -c 创建一个加密文件
    # 查看生成的用户和密码
    cat password/password.db
    

    如果要修改密码,或者删除密码,请参考下面操作

    删除用户和密码

    $ htpasswd -D /usr/local/nginx/password username
    # -D 删除指定的用户
    # 修改用户和密码
    
    $ htpasswd -D /usr/local/nginx/password username
    $ htpasswd -b /usr/local/nginx/password username pass
    # -D 删除指定的用户
    # -b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
    # -p htpassswd命令不对密码进行进行加密,即明文密码
    

    3. 配置 Nginx 认证

    找到 nginx 配置文件,通常默认的配置文件在/usr/local/nginx/conf/nginx.conf,要对整个站点开启验证,需在配置文件中的server加上认证配置
    如果是 docker 安装映射了 /etc/nginx/conf.d 目录的话,需要在指定的 .conf 文件内加上认证配置
    auth_basic 和 auth_basic_user_file

    server {
      listen 80;
      server_name  localhost;
      # ...
      
      auth_basic "请输入用户和密码"; # 验证时的提示信息
      auth_basic_user_file /etc/nginx/password/password.db; # 认证文件
    
      location / {
         #...  忽略
      }
      # ...
    }
    

    4. 重启/重载Nginx使站点的认证生效

    /usr/local/nginx/sbin/nginx -s reload
    

    参考


    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 chgocn@gmail.com
    笔记