设为首页 收藏本站
查看: 718|回复: 0

[经验分享] Nginx 配置下载功能的服务器详细

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-22 10:14:21 | 显示全部楼层 |阅读模式
功能需求:由于公司有很多的日志文件需要整理,并且需要相关人员去下载查看,为了简便,我搭建了nginx服务并且将日志文件 放到 相应的目录下,用以方便相关人员下载查看,于是很快把nginx服务就搭建完了,但是尴尬的事情出现了,当点击日志文件时发现txt结尾的文档,直接被浏览器打开了,几千行的数据全都打印在浏览器上。于是就想到将nginx配置成可下载的。

1.环境
  系   统: Centos6.5
  基础服务: Nginx 版本 nginx/1.6.0
2.修改配置文件,以支持 以txt 结尾的文件能够实现下载而不是直接在浏览器打开;
  配置详情:   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
          }
        }



  注:在开启下载功能时,最关键的配置:            
1
2
3
4
5
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
QQ截图20160822101403.jpg
firefox  : Content-Disposition attchement 注意这里是没有冒号,
QQ截图20160822101408.jpg
    如果配置为add_header Content-Disposition 'attachment:'; 则出现的效果为 火狐点击txt文件时,会提供下载,而不会在浏览器打开,而chrome 浏览器则是会在浏览器中显示
    如果配置为add_header Content-Disposition 'attachment'; 则无论在火狐还是chrome浏览器中点击txt文件时都会为下载。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-261267-1-1.html 上篇帖子: Nginx 上的 Too many open files 错误 下篇帖子: nginx的upstream实现负载均衡自带坏点自动剔除功能 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表