Nginx 开放指定下载目录
本案例演示使用
nginx
的ngx_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生成器使用参考
[root@localhost auth]# pwd
/opt/software/middleware/nginx-install-1.22.1/auth
[root@localhost auth]#
[root@localhost auth]# cat encrypt_pass
lvzb:JwXLcRZdH7bcY
(三)演示效果