Nginx配置Basic Auth登录认证,要求用户名密码

Nginx配置Basic Auth登录认证

有时候我们通过nginx搭建了一台文件服务器, 一般来讲是公开的, 但我们又希望该服务器不让他人看到, 有人可能会搭建一个登录系统, 但是太麻烦, 也没太大必要, 比较简单的做法是配置Basic Auth登录认证(ngx_http_auth_basic_module)。

Nginx配置Basic Auth登录认证,要求用户名密码
Nginx站点用户名密码难

nginx编译时默认已经包含这个模块,我们只需要做一下简单的配置即可实现http认证。

1、确定你安装了httpd-tools

2、创建授权用户和密码

htpasswd可以用于生成用户信息

生成用户及密码

htpasswd其它操作

3、配置Nginx Basic Auth

大致配置如下:

  • auth_basic 认证开关,默认是off(即关闭认证)。除了off以外的都是启用auth。
  • auth_basic_user_file 账户密码文件,可以通过htpasswd生成,路径一定要和上一步的目录相同。

4、使用

5、访问限制

经常看体验盒子文章的同学会发现,之前我们分享了很多弱口令暴力破解的项目,其中就有域用户密码破解的,为了防止暴力破解,我们可以用nginx的ngx_http_limit_req_module模块进行访问限制。更多nginx安全设置可参考《Nginx与安全有关的一些配置》。

上面表示同一ip地址1秒最多只能访问20次,超过限制会立即返回错误。