访问认证
有时候,我们⼀些站点内容想要进⾏授权查看,只能输⼊账号密码之后才能访问,例如⼀些重要的内⽹平台,CRM
,
CMDB
,企业内部
WIKI
等等。
htpasswd是Apache密码⽣成⼯具,Nginx⽀持auth_basic认证,因此我⻔可以将⽣成的密码⽤于Nginx中,输⼊⼀⾏命令即可安装
yum -y install httpd-tools
生成认证文件
在nginx目录下创建目录passwrod,cd到passwrod目录下执行命令
#在当前⽬录⽣成.access⽂件,⽤户名username,密码:password,默认采⽤MD5加密⽅式。
htpasswd -bc .access username password
参数
-c
|
创建passwdfile.如果passwdfile 已经存在,那么它会重新写⼊并删去
原有内容.
|
-n
|
不更新passwordfile,直接显示密码
|
-m
|
使⽤MD5加密(默认)
|
-d
|
使⽤CRYPT加密(默认)
|
-p
|
使⽤普通⽂本格式的密码
|
-s
|
使⽤SHA加密
|
-b
|
命令⾏中⼀并输⼊⽤户名和密码⽽不是根据提示输⼊密码,可以看⻅明
⽂,不需要交互
|
-D
|
删除指定的⽤户
|
生成密码文件
htpasswd -bc ./htpasswd xiaomi 666
修改配置文件
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip on;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html;
auth_basic "learn nginx auth_module";
#nginx会去这个⽂件中验证账号密码
auth_basic_user_file /root/nginx-1.18.0/passwrod/htpasswd;
}
}
}
测试
输入用户和密码
访问成功