Nginx专题-开启认证并开放指定下载目录

Nginx 开放指定下载目录

本案例演示使用 nginxngx_http_autoindex_module 模块开启路径访问,支持文件下载。

开启 ngx_http_auth_basic_module模块,支持访问时输入账号密码认证。

前置准备

  • 提前建立好 auth目录,在该目录下防止账号密码文件 /opt/software/middleware/nginx-install-1.22.1/auth/encrypt_pass
  • 在文件中配置账号密码,**注意这里面的账号密码需要是htpasswd工具生成的格式。可以使用在线生成工具**生成然后拷贝进去,也可以安装相应的工具在linux系统内生成。
  • 在配置文件中的server段中开启 auth_basic,和 autoindex

(一)nginx.conf文件

#user  nobody;

worker_processes  auto;

#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;
    
    #设置字符集为 utf-8防止中文乱码
    charset utf-8;
    #引用其它的conf文件,这些conf文件中只需要配置 虚拟主机 server段即可
    include conf.d/*.conf; 

}

(二)auth_basic.conf文件

server {

   listen 80;
   #auth_basic.lvzb.com需要在本地host文件中提前做好ip映射
   server_name auth_basic.lvzb.com;
   
    #这里是开放 /opt/source下的内容访问下载
	location /source/ {
	   root /opt;
       #开启认证功能    
       auth_basic "提示你输入用户名密码";
       #认证的账号密码对应的内置用户文件
       auth_basic_user_file /opt/software/middleware/nginx-install-1.22.1/auth/encrypt_pass;
       
       #开启暴露目录访问
	   autoindex on;
       #显示文件大小到M
	   autoindex_exact_size off;
	   # 只有HTML格式可以下载,也可以是json,xml,jsonp
	   autoindex_format html;
	   # 日期格式
	   autoindex_localtime on;
	}
}

htpasswd生成器使用参考

Nginx专题-开启认证并开放指定下载目录_第1张图片

[root@localhost auth]# pwd
/opt/software/middleware/nginx-install-1.22.1/auth
[root@localhost auth]# 
[root@localhost auth]# cat encrypt_pass 
lvzb:JwXLcRZdH7bcY

(三)演示效果

Nginx专题-开启认证并开放指定下载目录_第2张图片
Nginx专题-开启认证并开放指定下载目录_第3张图片

参考资料

  • ngx_http_auth_basic_module
  • ngx_http_autoindex_module
  • 在线 htpasswd 生成器

你可能感兴趣的:(java,nginx,linux,服务器)