Nginx访问认证

访问认证

有时候,我们⼀些站点内容想要进⾏授权查看,只能输⼊账号密码之后才能访问,例如⼀些重要的内⽹平台,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;
		 }
	 }
}

 测试

输入用户和密码 

Nginx访问认证_第1张图片

访问成功

Nginx访问认证_第2张图片 

你可能感兴趣的:(nginx,服务器,运维)