Nginx 基于账号密码的访问控制

功能介绍

  不管是在测试环境、开发环境还是个人的公网访问环境。我们有些东西都是不想公开让所有人看到的,然而这些内容又懒的去写一套账号密码认证的机制去保护它。Nginx 基于账号密码的访问控制就完美的解决了你的烦恼。 效果如下图。

  • 该功能主要使用 ngx_http_auth_basic_module 实现,下面是官网的使用介绍。
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

Nginx 配置文件

# 懒~~ 我就把测试的配置文件放出来了
[XueDine@root /etc/nginx/conf.d]# cat files.conf
server {
listen 80;
server_name files.xuedine.com;
default_type 'text/html';
charset utf-8;
access_log /data/log/xuedine-files/access_log main;
error_log /data/log/xuedine-files/error_log;

location / {
auth_basic "User Authentication"; # 名称可以随便起,使用英文
auth_basic_user_file /etc/nginx/passwd.passwd; # 文件路径 绝对相对都可以,自己能搞清就好。
root /data/writing;
index index.html;
}
}

配置账号密码,重启Nginx

  • 使用 htpasswd 命令生成密码文件,没有这个命令的话就下一个。
$ yum install httpd-tools -y
# 我的文件路径是 /etc/nginx
$ cd /etc/nginx && htpasswd -c passwd.passwd $USERNAME
# 然后输入密码进行确认就可以了。最后一步就是重启 nginx 使其生效了。

$ nginx -t
$ systemctl restart nginx