一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Nginx文件強(qiáng)制下載的配置方法

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2023-05-06 09:18 ? 次閱讀

有時(shí)您可能需要強(qiáng)制用戶(hù)從您的網(wǎng)站下載內(nèi)容,而不是在他們的網(wǎng)站上查看。如果您的網(wǎng)站有很多可下載的內(nèi)容,這一點(diǎn)很重要。在本文中,我們將了解如何在 NGINX 中強(qiáng)制下載文件。強(qiáng)制文件下載可防止用戶(hù)在您的服務(wù)器上流式傳輸這些文件并減少您網(wǎng)站的服務(wù)器負(fù)載。

現(xiàn)在的瀏覽器能夠識(shí)別很多文件類(lèi)型(txt,pdf,jpg...),并在瀏覽器中自動(dòng)打開(kāi)

情況一:
添加頭信息Content-Disposition "attachment;"會(huì)使瀏覽器強(qiáng)制下載:

代碼如下:

#表示瀏覽器內(nèi)嵌顯示一個(gè)文件
Content-disposition: inline; filename=foobar.pdf
 
#表示會(huì)下載文件,如火狐瀏覽器中
Content-disposition: attachment; filename=foobar.pdf

nginx配置如下,在相應(yīng)的server中添加如下location:

代碼如下:

location /download {
    add_header Content-Disposition "attachment;";
}

情況二:

有這么一個(gè)需求,對(duì)于圖片文件和pdf等文件鏈接,只要訪問(wèn)實(shí)在某個(gè)路徑下,不能在瀏覽器中打開(kāi)圖片,而是提示用戶(hù)保存到本地,文件名使用訪問(wèn)的文件名。
這個(gè)問(wèn)題主要是IE造成的,不管mime類(lèi)型是什么,比如人工把圖片的mime類(lèi)型設(shè)置為octet-stream,如果瀏覽器認(rèn)識(shí)文件后綴的話,仍然會(huì)在瀏覽器中打開(kāi)圖片。

解決方案:

在響應(yīng)的http頭添加:Content-Disposition: attachment; filename=文件名
nginx配置如下:

代碼如下:

  location ~ ^/somepath/(.*)$ {
        add_header Content-Disposition "attachment; filename=$1";
        alias "E:/apache-tomcat-7.0.32/webapps/upload/$1";
}

這里使用到了正則表達(dá)式,捕獲請(qǐng)求的文件名。
另外,需要注意nginx的location優(yōu)先級(jí),首先是=,然后是^~,最后才是~。

基本上,您需要在要強(qiáng)制下載的 URL 的位置塊中添加以下行。

add_header Content-disposition "attachment; filename=$1";
default_type application/octet-stream;

上面兩行將內(nèi)容處置標(biāo)頭設(shè)置為“附件”,將內(nèi)容類(lèi)型設(shè)置為“應(yīng)用程序/八位字節(jié)流”以啟用下載。

例如,如果您想對(duì)以 /downloads 開(kāi)頭的所有 URL 強(qiáng)制下載,則在該文件夾的位置塊中添加上述行,如下所示。

location /downloads {
   ...
   add_header Content-disposition "attachment; filename=$1";
   default_type application/octet-stream;
   ...
}

如果您想強(qiáng)制下載以某些文件類(lèi)型和擴(kuò)展名(例如 .jpg、.png、.mp3 等)結(jié)尾的所有文件,請(qǐng)?jiān)谟糜谶@些文件類(lèi)型的位置塊中添加上述 2 行。

location ~* ^/.+.(?:gif|jpe?g|png|mp4|mp3)$ {
   ...
   add_header Content-disposition "attachment; filename=$1";
   default_type application/octet-stream;
   ...
}

以上修改完成后需要重啟Nginx,或重新加載

nginx -s reload

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9596

    瀏覽量

    86966
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    516

    瀏覽量

    32283
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1040

    瀏覽量

    35967
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4880

    瀏覽量

    69991
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    161

    瀏覽量

    12439

原文標(biāo)題:Nginx文件強(qiáng)制下載的配置方法

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux上Nginx獲得最佳性能的8種方法

    NGINX 是一種流行的、免費(fèi)的開(kāi)源 Web 服務(wù)器。默認(rèn)的 NGINX 配置足以讓 Web 服務(wù)器正常工作。 但是,如果您想充分利用 NGINX,則需要使用其
    發(fā)表于 01-16 09:51 ?602次閱讀

    nginx重啟命令linux步驟是什么?

      1、驗(yàn)證nginx配置文件是否正確   方法一:進(jìn)入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示
    發(fā)表于 07-10 16:40

    nginx重啟命令linux步驟是什么?

      1、驗(yàn)證nginx配置文件是否正確   方法一:進(jìn)入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示
    發(fā)表于 07-11 17:13

    nginx中的sendfile配置說(shuō)明

    nginx配置sendfile及詳細(xì)說(shuō)明
    發(fā)表于 05-05 08:08

    Linux下Nginx的常用命令------啟動(dòng)、停止、重啟

    ~]# pkill -9 nginx 1、驗(yàn)證nginx配置文件是否正確方法一:進(jìn)入nginx安裝目錄***in下,輸入命令./
    發(fā)表于 07-09 07:02

    Linux下Nginx配置多個(gè)站點(diǎn)的實(shí)現(xiàn)方法?

    請(qǐng)問(wèn)Linux下Nginx如何配置多個(gè)站點(diǎn)?
    發(fā)表于 11-09 06:43

    nginx錯(cuò)誤頁(yè)面配置

    16、nginx 錯(cuò)誤頁(yè)面配置nginx錯(cuò)誤頁(yè)面包括404 403 500 502 503 504等頁(yè)面,只需要在server中增加以下配置即可: error_page404 403
    發(fā)表于 07-26 06:54

    主要學(xué)習(xí)下nginx的安裝配置

    主要學(xué)習(xí)下nginx的安裝配置,以便于后續(xù)學(xué)習(xí)。以下在本地虛擬機(jī)上搭建學(xué)習(xí)。1、檢查系統(tǒng)網(wǎng)絡(luò)是否能連通公網(wǎng):ping www.taobao.com2、確認(rèn)yum源是否配置好,用于下載
    發(fā)表于 10-19 14:12

    展示一下nginx的學(xué)習(xí)模塊

    編輯default.conf,加上如下配置:vim /etc/nginx/conf.d/default.conf然后檢查配置的正確性:#-t 表示檢查配置文件;-c表示檢查指定的
    發(fā)表于 10-19 14:16

    分享nginx 502的解決方法

    還好,我印象中多年前遇到過(guò)一次類(lèi)似的問(wèn)題,不過(guò)是linux代理linux,癥狀和該問(wèn)題基本類(lèi)似,當(dāng)時(shí)的解決辦法是,修改被代理的linux服務(wù)器nginx配置文件nginx.conf中worker_connections參數(shù)的值,
    的頭像 發(fā)表于 02-09 08:37 ?6732次閱讀

    運(yùn)行nginx所需的最低配置

    運(yùn)行nginx所需的最低配置: # /etc/nginx/nginx.confevents {} # event context have to be defined to consi
    的頭像 發(fā)表于 08-23 10:53 ?5622次閱讀

    Nginx常用的配置和基本功能講解

    Nginx 已經(jīng)廣泛應(yīng)用于 J-one 和 Jdos 的環(huán)境部署上,本文對(duì) Nginx 的常用的配置和基本功能進(jìn)行講解,適合 Nginx 入門(mén)學(xué)習(xí)。
    的頭像 發(fā)表于 05-04 10:25 ?820次閱讀

    nginx負(fù)載均衡配置介紹

    目錄 nginx負(fù)載均衡 nginx負(fù)載均衡介紹 反向代理與負(fù)載均衡 nginx負(fù)載均衡配置 Keepalived高可用nginx負(fù)載均衡器
    的頭像 發(fā)表于 11-10 13:39 ?525次閱讀
    <b class='flag-5'>nginx</b>負(fù)載均衡<b class='flag-5'>配置</b>介紹

    Nginx日常運(yùn)維方法Linux版

    / 默認(rèn)站點(diǎn)目錄:/usr/share/nginx/html 通過(guò)篩選進(jìn)程查看當(dāng)前使用的主配置文件和運(yùn)行用戶(hù): ? ps aux | grep nginx ? 如圖: 主要配置文件
    的頭像 發(fā)表于 12-06 16:38 ?368次閱讀
    <b class='flag-5'>Nginx</b>日常運(yùn)維<b class='flag-5'>方法</b>Linux版

    Nginx服務(wù)優(yōu)化教程

    隱藏Nginx版本號(hào),避免安全漏洞泄漏:修改配置文件法;修改源碼法
    的頭像 發(fā)表于 03-12 15:57 ?376次閱讀
    <b class='flag-5'>Nginx</b>服務(wù)優(yōu)化教程