032_nginx配置文件安全下载
一、
server {
listen 8866;
server_name _;
access_log /usr/local/etc/nginx/log/download.access.log main;
error_log /usr/local/etc/nginx/log/download.error.log;
location / {
root /usr/local/etc/nginx/aruntestdir;
if ($request_filename ~* ^.*?\.(html|zip|gz)$){ #不能为空
add_header Content-Disposition: 'attachment;';
add_header Content-Type: 'APPLICATION/OCTET-STREAM';
}
}
}
测试:

如下图所示在nginx的返回的网页Respons中添加头字段.

Request头解释:
<1>$request_filename
file path for the current request, based on the root or alias directives, and the request URI
<2>Content-Disposition
In a regular HTTP response, the Content-Disposition response header is a header indicating if the content is expected to be displayed inline in the browser, that is, as a Web page or as part of a Web page, or as an attachment, that is downloaded and saved locally.
attachment (indicating it should be downloaded; most browsers presenting a 'Save as' dialog
Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
<3>Content-Type
The Content-Type entity header is used to indicate the media type of the resource.In responses, a Content-Type header tells the client what the content type of the returned content actually is.
application/octet-stream meaning "download this file" 扩展:
What are MIME types?
MIME types describe the media type of content either in email or served by web servers or web applications and are intended to help guide a web browser in how the content is to be processed and displayed. Examples of MIME types are: text/html for normal web pages
text/plain for plain text
text/css for Cascading Style Sheets
text/javascript for scripts
application/octet-stream meaning "download this file"
application/x-java-applet for Java applets
application/pdf for PDF documents
Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
二、附下载python脚本
#!/usr/bin/env python
import os
import urllib
def Schedule(blocks, blocksize, totalsizeofile):
"""
The third argument, if present, is a hook function that will be called once on establishment of the network connection
and once after each block read thereafter.
The third argument may be -1 on older FTP servers which do not return a file size in response to a retrieval request. The hook will be passed three arguments;
:param blocks: a count of blocks transferred so far
:param blocksize: a block size in bytes
:param totalsizeofile: the total size of the file.
:return:
"""
percent = 100.0 * blocks * blocksize / totalsizeofile
if percent > 100 :
percent = 100
print '%.2f %%' % percent
if __name__ == "__main__":
url = 'http://127.0.0.1:8088/downtest.html' #download url
local = os.path.join('/tmp','downtest.html') #local path + filename
#If no Content-Length header was supplied, urlretrieve() can not check the size of the data it has downloaded,
# and just returns it. In this case you just have to assume that the download was successful.
urllib.urlretrieve(url, local, Schedule)
032_nginx配置文件安全下载的更多相关文章
- 【学习总结】GirlsInAI ML-diary day-2-Python版本选取与Anaconda中环境配置与下载
[学习总结]GirlsInAI ML-diary 总 原博github链接-day2 Python版本选取与Anaconda中环境配置与下载 1-查看当前Jupyter的Python版本 开始菜单选J ...
- Nginx 核心配置-作为下载服务器配置
Nginx 核心配置-作为下载服务器配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.无限速版本的下载服务器 1>.查看主配置文件 [root@node101.yinz ...
- maven配置和下载
下载链接:http://maven.apache.org/docs/ 以maven3.0.4为例,eclipse以kepler为例 环境变量的配置 1.系统变量-新建-变量名:MAVEN_HOME-变 ...
- WinDbg配置与下载 (转载)
WinDbg配置和使用基础 WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. 1. Win ...
- NAS4Free 配置BT下载
NAS4Free 9.3.0.2 开启BT下载功能 Services|BitTorrent 选中右上角的复选框 Peer port 是监听端口,用于接受外部连接,需要在路由器配置该端口到服务器,才能提 ...
- 在firefox的flashgot中配置各种下载器
一.在firefox中安装flashgot下载管理器 flashgot是firefox的一个扩展,在联网的情况下,可以在firefox中的附加组件中搜索flashgot,然后安装. 二.在flashg ...
- appach-maven-3.5.0配置与下载
今天需要搭建javaweb开发的环境,需要配置maven.弄了半天终于配置好了.蛋疼的一批.楼主用的是win10的系统.不知道Linux下的也是不是这么坑! 首先,需要把maven的包下载下来.进入h ...
- idea部署Maven入门(一)——环境变量的配置和下载
介绍: 1 Maven是用来管理jar包的一种工具, 2 Maven主要是构建java项目和java web项目 3 maven项目管理所依赖的jar ...
- scrapy框架修改单个爬虫的配置,包括下载延时,下载超时设置
在一个框架里面有多个爬虫时,每个爬虫的需求不相同,例如,延时的时间,所以可以在这里配置一下custom_settings = {},大括号里面写需要修改的配置,然后就能把settings里面的配置给覆 ...
随机推荐
- .net多站点通过StateServer实现session共享
先在所有要共享站点web.config的<system.web>结点下加 <!--session的mode=StateServer--><sessionState coo ...
- 【leetcode-51,52】 N皇后,N皇后 II
N皇后(hard) n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题 ...
- bzoj千题计划321:bzoj5251: [2018多省省队联测]劈配(网络流 + 二分)
https://www.lydsy.com/JudgeOnline/problem.php?id=5251 第一问: 左边一列点代表学生,右边一列点代表导师 导师向汇点连流量为 人数限制的 边 然后从 ...
- HDU 1022(火车过站 栈)
题意是给定火车进站的序列和出站的序列,问能否完成转换,若能输出过程. 和另一道以火车进站为背景的栈应用题类似,但增加了对于过程的输出,只需要多记录一下进出站顺序即可. #include <bit ...
- Python复习笔记(八)迭代器和生成器和协程
1. 迭代器 1.1 可迭代对象 判断xxx_obj是否可以迭代 在第1步成立的前提下,调用 iter 函数得到 xxx_obj 对象的 __iter__ 方法的返回值 __iter__ 方法的返回值 ...
- SpringBoot系列: SpringBoot 启动慢的问题
SpringBoot 应用启动速度往往很快, 但在某些Linux 服务器上可能会很慢, 可能超过1分钟, 有时候甚至启动不起来. 下面过程耗时太长:IdGeneratorBase: Creation ...
- SQL Server进阶(三)单表查询
示例数据库 点我下载 一条完整的sql语句 select top | distinct 字段, 表达式, 函数, ... from 表表达式 where 筛选条件 group by 分组条件 havi ...
- springboot 02-PropertiesFile 自定义配置属性,多环境配置
application.properties: # 自定义配置 test.hello.world = HelloWorld test.person.name = 哈哈 test.person.sex ...
- Ubuntu中创建、删除、更改、移动文件的命令
1.创建一个目录 $ sudo mkdir <目录名> 2.删除一个非空目录下的一切 $ sudo rm -rf <目录名> 3.将文件file1,更改文件名为file ...
- Linux 下杀毒可用工具 clamav
clamav 杀毒工具:Linux下可用的杀毒工具: 下载地址: 最新 包 0.101 官网下载地址:http://www.clamav.net/downloads最新包地址: https://cla ...