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

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

首先环境准备:

# lsb_release -a
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
Distributor ID: CentOS
Description: CentOS release 6.7 (Final)
Release: 6.7
Codename: Final

一、Nginx 安装

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

二、修改nginx配置文件

cd /etc/nginx/
cat > nginx.conf << 'eof'
user nginx;
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server_tokens off; 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 /var/log/nginx/access.log main; server {
listen ;
server_name localhost;
location / {
root html;
index index.html index.htm;
} location /download {
charset utf-;
root /data/;
#alias /data/download/; if ($request_filename ~* ^.*?\.(txt)$){
add_header Content-Disposition 'attachment';
add_header Content-Type: 'APPLICATION/OCTET-STREAM';} autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
access_log /var/log/nginx/download.log main;
} error_page /50x.html;
location = /50x.html {
root html;
}
}
}
eof

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

mkdir -p /data/download

#chown -R nginx.nginx /data/download
#(这部可有可无)

四、启动nginx,测试下载

/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/ 下。

}

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

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

htpasswd 使用小结

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

e、如何利用 htpasswd 命令修改密码?
htpasswd -D .passwd tonyzhang
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. 运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容

    运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客采用腾讯邮箱,想必大家都对QQ很了解,所以 ...

  2. Python基础01

    Python基础 1.Python介绍 2.安装 3.Hello World程序 4.变量 5.用户输入 6.表达式if ...else语句 7.表达式for 循环 8.表达式while 循环 9.数 ...

  3. centos之Too many open files问题-修改linux最大文件句柄数

    linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [ ...

  4. linux 内核模块makefile通用模板

    ifneq ($(KERNELRELEASE),)# 在 mylist 后面添加需要编译的模块数量 mylist=hello.o a.o# 为每一个模块添加所需的文件 hello-objs := ma ...

  5. WebStorm记录(1)

    开始写前端,使用WebStorm,记录下使用过程 参考 WebStorm 初步使用 & HTML5 学习报告 webstorm怎么运行调试html WebStorm 快速开发教程 --CSS篇 ...

  6. 【.Net平台下插件开发】-MEF与MAF初步调研

    背景   Team希望开发一个插件的平台去让某搜索引擎变得更好.主要用于采集一些不满意信息(DSAT)给Dev.这些信息会由不同的team提供不同的 tool分析.有的提供仅仅是一个website,有 ...

  7. 我手机上常用的app和常访问的网站

    ====常用======Opera Mini browser 浏览器(版本26.0.2254.117241以上) 老版本7.7最最经典, 但该版本在新的安卓手机上总有部分区域显示空白. 现在的 Ope ...

  8. JAVA 线程池之Callable返回结果

    本文介绍如何向线程池提交任务,并获得任务的执行结果.然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理. 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口 ...

  9. Repeater中使用条件的两种方法

    1.使用三目运算符 display=<%#(Eval("Sex", "{0}") == "01") ? "none" ...

  10. ASP.NET Web API 2 之 HttpRequestMessage 对象

    Ø  前言 在 Web API 中经常会使用到 HttpRequestMessage 和 HttpResponseMessage 对象,这两个对象封装了对 Web API 的请求和响应,位于 Syst ...