Nginx 配置下载功能的服务器详细

功能需求:由于公司有很多的日志文件需要整理,并且需要相关人员去下载查看,为了简便,我搭建了nginx服务并且将日志文件 放到 相应的目录下,用以方便相关人员下载查看,于是很快把nginx服务就搭建完了,但是尴尬的事情出现了,当点击日志文件时发现txt结尾的文档,直接被浏览器打开了,几千行的数据全都打印在浏览器上。于是就想到将nginx配置成可下载的。

1.环境

系   统: Centos6.5

基础服务: Nginx 版本 nginx/1.6.0

2.修改配置文件,以支持 以txt 结尾的文件能够实现下载而不是直接在浏览器打开;

配置详情:

server {
        listen    80;             #这些都是基础配置了 监听端口
        server_name  localhost;    # 主机名
        autoindex on;               #nginx 目录浏览功能 默认是
        #access_log  logs/host.access.log  main;
        location / {
            if ($request_filename ~* ^.*?\.(txt)$)
              {
                 add_header Content-Disposition ‘attachment:‘;
                 add_header Content-Type: ‘APPLICATION/OCTET-STREAM‘;
               }
            root   /html;
            index  index.html index.htm;
          }
        }

注:在开启下载功能时,最关键的配置:

 if ($request_filename ~* ^.*?\.(txt)$)
              {
                 add_header Content-Disposition ‘attachment:‘;
                 add_header Content-Type: ‘APPLICATION/OCTET-STREAM‘;
              }

这段配置的意义在于,当接收到以txt为结尾的链接请求时,会转为下载,其中 Content-Disposition 属性名 attachment 则是附件下载。

注意: 大部分的资料和博客都是这么配置的,但是会发现,设置完成后点击nginx目录下txt文件确实是下载了,不是在浏览器中打开,但是,在chrome 或者 其他浏览器中,仍然是在浏览器中显示,而没有实现下载。

重点关键在attachment:

应该注意一个这样的现象

Google chrome:Content-Disposition: attachment

firefox  : Content-Disposition attchement 注意这里是没有冒号,

如果配置为add_header Content-Disposition ‘attachment:‘; 则出现的效果为 火狐点击txt文件时,会提供下载,而不会在浏览器打开,而chrome 浏览器则是会在浏览器中显示

如果配置为add_header Content-Disposition ‘attachment‘; 则无论在火狐还是chrome浏览器中点击txt文件时都会为下载。

时间: 2024-10-06 05:16:06

Nginx 配置下载功能的服务器详细的相关文章

如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且简单

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

Nginx,Apache只允许域名访问详细配置

Nginx,Apache只允许域名访问详细配置 一.nginx配置只允许域名访问 # 设置不允许Ip访问web(default_server) server { listen 80 default_server; server_name _; return 403; } # 设置www.meteor-yu.com域名访问web server { listen 80; server_name www.meteor-yu.com; location /ngx_status { stub_status

nginx配置虚拟路径下载文件(.apk)

公司将安卓apk文件放到服务器上,实现用户点击链接并下载 nginx version 1.14.1 nginx配置修改 server { listen 80; server_name localhost; location /apk/ { alias /data/app/apks/; autoindex on; default_type application/octet-stream; } } alias指定虚拟目录 比如nginx的域名为www.test.com 访问www.test.com

你真的了解如何将 Nginx 配置为Web服务器吗

阅读之前,建议先阅读初识 Nginx. 之后,我们来了解一下 Nginx 配置. 抽象来说,将 Nginx 配置为 Web 服务器就是定义处理哪些 URLS 和如何处理这些URLS 对应的请求.具体来说,就是定义一些虚拟服务器(Virtual Servers),控制具有特定 IP 和域名的请求. 更具体的来说, Nginx 通过定义一系列 locations 来控制对 URIS 的选择.每一个 location 定义了对映射到自己的请求的处理场景:返回一个文件或者代理请求,或者根据不同的错误代码

00-01.PHP 网站假设win7配置自己的IIS服务器亲自做的图文很详细 [转 - 赞 ]

win7配置自己的IIS服务器亲自做的图文很详细 分步阅读 跟人网站爱好初学者必看的win7系统配置自己的IIS,可以在你自己的电脑上配置网站服务器发不到网上,下面就跟着我的步骤一起做吧100%成功. 步骤/方法 点击开始-------控制面板这个就是打开的控制面板--点击默认程序进入下一步   下一步我们选择程序和功能---再下一步   到这里我们选择打开或关闭windows功能   到这里我们找到internet信息服务S2005 中,如果要调试站点的话,必须有“Windows身份验证” “

Nginx各个配置块功能详解

Nginx学习笔记-入门篇 nginx初探 ginx服务器是轻量级web服务器中广受好评的一款产品,常用功能有HTTP代理与反向代理(目前已支持七层与四层代理),负载均衡,web缓存. nginx配置文件简介 初学者总是对nginx的配置文件的各个块表示迷惑以及无所适从,接下来简单的介绍一下nginx配置文件的块格式以及含义和生效范围. #这里是全局块,可以配置一些全局生效的配置,比如nginx启动用户,nginx的worke_press events { #event块,配置worker_co

Mac直播服务器Nginx配置对HLS的支持

在上一篇中Mac上搭建直播服务器Nginx+rtmp,我们已经搭建了nginx+rtmp直播服务器.下面需要对Nginx服务器增加对HLS的支持.在Nginx增加对HLS种支持比较简单,只是简单的修改下配置文件nginx.conf即可. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,请参考上一篇中Mac上搭建直播服务器Nginx+rtmp.这里提示以下几点: (1) 安装好 nginx 后,打开配置文件: /usr/local/nginx/conf/nginx.c

在APACHE环境下配置下载服务器的注意事项

这篇文章主要介绍了在APACHE环境下配置下载服务器的注意事项,需要的朋友可以参考下 环境 平台:FreeBSD6.1 服务器:APACHE2.0.59 组件: libiconv-1.9.2_2.tbz     pkgconfig-0.20.tbz          #pkg_add添加组件时需要的文件 libxml2-2.6.23_1.tbz   perl-5.8.8.tbz                   #要使用pkg_add添加的组件 mod_bw-0.7.gz   mod_limi