Nginx配置访问密码

有一些网页当我们想要只能自己访问或者几个人访问的时候,可以通过Nginx配置访问密码进行设置。

Nginx为我们提供了 ngx_http_auth_basic_module 模块,该模块可以让我们自己实现对Web内容的访问能控制,访问用户必须输入正确的用户名和密码后才能进行访问。

宝塔用户(9.0以上版本)可以直接在“网站目录”里开启,想知道原理和技术的可以继续往下看。

一、安装htpasswd

因为需要使用到htpasswd,htpasswd是Apache服务器中生成用户认证的一个工具,如果未安装,则使用如下命令安装htpasswd。

yum install -y httpd-tools

当然,不同的系统安装方式也有不一样,例如debian使用的就是

sudo apt update
sudo apt install apache2-utils

安装成功后,就可以设置用户名和密码。

扩展:htpasswd参数

  • -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
  • -n 不更新passwordfile,直接显示密码
  • -m 使用MD5加密(默认)
  • -d 使用CRYPT加密(默认)
  • -p 使用普通文本格式的密码
  • -s 使用SHA加密
  • -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
  • -D 删除指定的用户

二、设置用户名和密码

htpasswd 安装成功后,就可以设置用户名和密码,通过如下命令进行设置

htpasswd -cb /etc/nginx/htpasswd mynginx 123456

如果系统是 debian 的就是

sudo htpasswd -cb /etc/nginx/htpasswd mynginx 123456

以上命令的含义是在 /etc/nginx 目录下生成密码文件htpasswd(所以目录可以更改),并生成用户名为 mynginx,密码为123456 的用户信息,用户名和密码可以根据自己的需求进行设置。

三、修改Nginx配置

Nginx的默认端口为80,因为我们要为整个Nginx站点开启验证,找到端口为80的Server
添加如下两行内容

auth_basic "Please enter the user name and password"; #这里是验证时的提示信息
auth_basic_user_file /etc/nginx/htpasswd; #注意路径和文件

保存退出,重新启动Nginx,此时访问比必须输入正确的用户名和密码才能访问。

补充:Nginx常用命令

nginx -s stop # 快速关闭
nginx -s quit # 优雅地关闭,指的是完成服务后退出
nginx -s QUIT 进程ID # 优雅地关闭
nginx -t # 检查配置文件格式是否配置正确
nginx -s reload # 重新加载配置文件
/nginx -c /usr/local/nginx/conf/nginx.conf # 指定配置文件启动

 

赞同(4) 打赏
未经允许不得转载:BlogC » Nginx配置访问密码
分享到

评论 抢沙发