文章

Nginx网站添加访问校验

Nginx网站添加访问校验

背景

自己的网站需要做一个简单的访问权限校验,于是就想到了nginx可以做这个事儿。 随后就去网上搜了一下教程,结果没有几个说的比较全面的而且照做下来也没有成功,因此在这里做个记录,方便有需要的人能看到

过程

首先讲一下nginx的版本: 1.14.0 (如果版本不一样不保证我的教程是正确的)。 nginx使用的是ngx_http_auth_basic_module模块,此模块不需要安装直接可以使用。

使用httpasswd生成密码

如果没有这个命令的话centos的安装命令是 yum -y install httpd-tools

生成带用户名和密码的文件

1
2
htpasswd -c /usr/local/nginx/passwd/access  nginx # 最后一个参数是用户名,可自定义
下面根据提示输入密码

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
   listen 80;
   server_name  -;
  
   location / {
    .......
 	
   	auth_basic "closed site";  
   	auth_basic_user_file /usr/local/nginx/passwd/access; 
   	 .......
   }
  
}

参数讲解 auth_basic : 默认值是false,如果不修改的话是不生效的 auth_basic_user_file: 验证的帐号密码,这个填的是用htpasswd生成的文件路径

保存之后

1
2
nginx -t  # 查看配置修改是否正确
nginx -s reload # 重启nginx

下面贴一下nginx官网的模块介绍 http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

至此 配置完毕!

本文由作者按照 CC BY 4.0 进行授权