平时应用中,我们大都用apache搭建下载页面。毕竟Apache搭建起来非常方便,yum安装,创建目录就可以了。

但有时还是需要用nginx配置下载页面。这里就是一个简单的配置nginx下载页面的过程。过程简单,有需要优化的地方建议大家百度一下。

首先环境准备:

  1. # lsb_release -a
  2. LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
  3. Distributor ID: CentOS
  4. Description: CentOS release 6.7 (Final)
  5. Release: 6.7
  6. Codename: Final

一、Nginx 安装

  1. yum install -y nginx
    useradd -s /sbin/nologin -M nginx

二、修改nginx配置文件

  1. cd /etc/nginx/
  2. cat > nginx.conf << 'eof'
  3. user nginx;
  4. worker_processes ;
  5. events {
  6. worker_connections ;
  7. }
  8. http {
  9. include mime.types;
  10. default_type application/octet-stream;
  11. sendfile on;
  12. keepalive_timeout ;
  13. server_tokens off;
  14.  
  15. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  16. '$status $body_bytes_sent "$http_referer" '
  17. '"$http_user_agent" "$http_x_forwarded_for"';
  18. access_log /var/log/nginx/access.log main;
  19.  
  20. server {
  21. listen ;
  22. server_name localhost;
  23. location / {
  24. root html;
  25. index index.html index.htm;
  26. }
  27.  
  28. location /download {
  29. charset utf-;
  30. root /data/;
  31. #alias /data/download/;
  32.  
  33. if ($request_filename ~* ^.*?\.(txt)$){
  34. add_header Content-Disposition 'attachment';
  35. add_header Content-Type: 'APPLICATION/OCTET-STREAM';}
  36.  
  37. autoindex on;
  38. autoindex_exact_size off;
  39. autoindex_localtime on;
  40. access_log /var/log/nginx/download.log main;
  41. }
  42.  
  43. error_page /50x.html;
  44. location = /50x.html {
  45. root html;
  46. }
  47. }
  48. }
  49. eof

三、创建nginx下载目录,并授予权限

  1. mkdir -p /data/download
  2.  
  3. #chown -R nginx.nginx /data/download
    #(这部可有可无)

四、启动nginx,测试下载

  1. /etc/init.d/nginx start

浏览器输入http://IP/download/

查看下载

注意:

  补充一点。

目录下载中

location /download {
    charset  utf-8;
    #root /data/;    #root的意思是url 访问IP/download  nginx会定向到本地目录/data/download/下。
    alias /data/;  # alias 意思是 url 访问IP/download  nginx会定向到本地目录/data/ 下。

}

为下载目录添加用户名密码验证

  1. #安装 htpasswd 工具
  2. yum -y install httpd-tools
  3.  
  4. #设置用户名和密码,并把用户名、密码保存到指定文件中:
  5. htpasswd -c /etc/nginx/pass/passwd coderschool
  6. New password:
  7. Re-type new password:
  8. Adding password for user coderschool
  9.  
  10. #修改 nginx 配置文件
  11. auth_basic "Please input password"; #这里是验证时的提示信息
  12. auth_basic_user_file /etc/nginx/pass/passwd;
  13. location /download {
  14. charset utf-;
  15. #root /data/;
  16. alias /data/;
  17. ......
  18.  
  19. #然后重启 nginx:
  20. nginx -s reload

htpasswd 使用小结

  1. htpasswd命令选项参数说明
  2. -c 创建一个加密文件
  3. -n 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上
  4. -m 默认htpassswd命令采用MD5算法对密码进行加密
  5. -d htpassswd命令采用CRYPT算法对密码进行加密
  6. -p htpassswd命令不对密码进行进行加密,即明文密码
  7. -s htpassswd命令采用SHA算法对密码进行加密
  8. -b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
  9. -D 删除指定的用户
  1. htpasswd例子
  2. a、如何利用htpasswd命令添加用户?
  3. htpasswd -bc ./.passwd tonyzhang pass
    在当前目录下生成一个.passwd文件,用户名tonyzhang ,密码:pass,默认采用MD5加密方式
  4. b、如何在原有密码文件中增加下一个用户?
  5. htpasswd -b ./.passwd onlyzq pass
    去掉c选项,即可在第一个用户之后添加第二个用户,依此类推
  6. c、如何不更新密码文件,只显示加密后的用户名和密码?
  7. htpasswd -nb tonyzhang pass
    不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码
  8. d、如何利用htpasswd命令删除用户名和密码?
  9. htpasswd -D .passwd tonyzhang

  10. e、如何利用 htpasswd 命令修改密码?
  11. htpasswd -D .passwd tonyzhang
  12. htpasswd -b .passwd tonyzhang pass

Nginx 开启目录下载的更多相关文章

  1. nginx开启目录浏览,解决中文乱码问题

    nginx开启目录浏览,解决中文乱码问题 方法如下: server { listen 80; #listen [::]:80; server_name gongzi.liwenhui.xin gz.l ...

  2. nginx开启目录浏览

    使用nginx作为下载站点,开启目录浏览的功能 在/etc/nginx/sites-enabled/default中添加: autoindex on ; autoindex_exact_size of ...

  3. Nginx 开启目录浏览功能配置

    在server节点下添加 server { listen ; server_name default; #index index.php; # 目录浏览功能 autoindex on; # 显示文件大 ...

  4. nginx配置目录访问&用户名密码控制

    背景 项目上需要一些共享目录让外地同事可以网页访问对应的文件,且受权限控制: 现有环境: centos nginx 你可以了解到以下内容: 配置nginx开启目录访问 并配置nginx用户名和密码进行 ...

  5. Nginx 和 Apache 开启目录浏览功能

    1.Nginx 在相应项目的 Server 段中的 location 段中,添加 autoindex on.例如: server { listen ; server_name www.dee.prac ...

  6. 开启Nginx的目录文件列表功能

    ngx_http_autoindex_module  此模块用于自动生成目录列表,ngx_http_autoindex_module只在 ngx_http_index_module模块未找到索引文件时 ...

  7. Nginx配置资源下载目录

    访问我的博客 之前在网上找 CentOs 的镜像的时候,发现了阿里云的这个镜像源,速度蛮快的.今天也来搭建一个类似的站,使用 nginx 作为资源下载服务器. 图片详情: 安装 Nginx 参考这篇教 ...

  8. nginx开启网站目录浏览功能

    一.开启全站目录浏览功能 编辑nginx.conf, 在http下面添加以下内容: autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的 ...

  9. nginx下目录浏览及其验证功能配置记录

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...

随机推荐

  1. Hadoop生态圈-构建企业级平台安全方案

    Hadoop生态圈-构建企业级平台安全方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,估计你对大数据集群的部署对于你来说应该是手到擒来了吧.我之前分享过 ...

  2. I/O模型之二:Linux IO模式及 select、poll、epoll详解

    目录: <I/O模型之一:Unix的五种I/O模型> <I/O模型之二:Linux IO模式及 select.poll.epoll详解> <I/O模型之三:两种高性能 I ...

  3. 4.工厂方法模式(Factory Method)

    耦合关系:       动机(Motivation):    在软件系统中,由于需求的变化,"这个对象的具体实现"经常面临着剧烈的变化,但它却有比较稳定的接口.    如何应对这种 ...

  4. excel怎么比较两组或两列数据的相同项和不同项

    https://jingyan.baidu.com/article/c843ea0b7a2a7477921e4a47.html

  5. GIT与SVN的比较

    Git: 1. 分布式版本控制2. 不需要网络,本地就可以操作版本控制3. 可以是公用的,可以分享4. 不依赖于中央服务器,即使服务器有问题也不会有影响5. 传输方式不一样,git要比svn快很多6. ...

  6. 修改VS 2012调试默认浏览器

    首先用vs打开我们的工程文件,点击任意一个aspx文件,点右键,找到弹出菜单中的“浏览方式”,如图: 然后点击“浏览方式”或者“Browser with”,弹出如图对话框: 

  7. Python下Tesseract Ocr引擎及安装介绍

    1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract,目前最新的源码 ...

  8. Cisco Common Service Platform Collector - Hardcoded Credentials(CVE-2019-1723)

    Cisco Common Service Platform Collector - Hardcoded Credentials 思科公共服务平台收集器-硬编码凭证(CVE-2019-1723) htt ...

  9. Debian Security Advisory(Debian安全报告) DSA-4407-1 xmltooling

    Package        : xmltooling CVE ID         : CVE-2019-9628 Ross Geerlings发现xmltools库没有正确处理关于错误(畸形)XM ...

  10. [C++]Linux之文件拷贝在系统调用和C库函数下的效率比较

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 题目: 1. 分别利用文件的系统调用r ...