kidys 发表于 2018-11-14 09:23:22

Nginx开启http基本认证

  Nginx中的ngx_http_auth_basic_module模块允许通过验证用户名和密码对资源进行访问控制,默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块,可以在编译时加上 --without-http_auth_basic_module
  nginx basic auth指令
  语法:    auth_basic string | off;
  默认值:auth_basic off;
  配置段:http, server, location, limit_except
  默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。
  语法:   auth_basic_user_file file;
  默认值:    —
  配置段:   http, server, location, limit_except
  指定一个文件,保存用户名和密码,文件内容格式:用户名:加密后的密码
  配置实例:
  nginx中增加配置:
  server {
  listen 80;
  server_namewww.yujia.com yujia.com;
  root         /app/html/www;
  index      index.html;
  auth_basic "secret";
  auth_basic_user_file /usr/local/nginx/passwd.db;
  }
  生成密码,可以使用htpasswd或openssl:
  方法一:htpasswd -cb/usr/local/nginx/passwd.db yujia 123456第一次添加的时候可以使用-c生成密码文件,第二次添加用户密码的时候千万不要使用-c参数,使用-b即可,否则会覆盖原来的密码文件,再创建一个新的密码文件
  方法二:echo "yujia:$(openssl passwd -crypt 123456)" >> /usr/local/nginx/passwd.db
  如果两个命令都没有,也可使用http://tool.oschina.net/htpasswd在线生成

  重启nginx生效:nginx -s>
页: [1]
查看完整版本: Nginx开启http基本认证