亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Nginx權限控制文件的預覽和下載方式

 更新時間:2024年06月19日 10:42:52   作者:伍六柒V  
這篇文章主要介紹了Nginx權限控制文件的預覽和下載方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

基于 Nginx + Java(SpringBoot) 實現帶權限驗證的靜態(tài)文件服務器,支持文件下載、PDF預覽和圖片預覽。

需要注意的是,無需權限判斷的圖片不建議使用此方法,大量的圖片訪問會增加后臺服務器的處理壓力。

實現原理

本質上是使用了X-Sendfile功能來實現,X-Sendfile 是一種將文件下載請求重定向到Web 服務器處理的機制,該Web服務器只需負責處理請求(例如權限驗證),而無需執(zhí)行讀取文件并發(fā)送給用戶的任務。

X-Sendfile可顯著提高后臺服務器的性能,消除了后端程序既要讀文件又要處理發(fā)送的壓力,尤其是處理大文件下載的情形下!

Nginx也具有此功能,但實現方式略有不同。

在Nginx中,此功能稱為X-Accel-Redirect。

用戶請求文件,權限控制時序圖

實現步驟

1、靜態(tài)文件通過file_server訪問,會被設置為internal,即只能內部訪問不允許外部直接訪問。

# 文件下載服務
location ^~ /file_server {
    # 內部請求(即一次請求的Nginx內部請求),禁止外部訪問,重要。
    internal;
    # 文件路徑
    alias /home/file/;
    limit_rate 200k;
    # 瀏覽器訪問返回200,然后轉由后臺處理
    error_page 404 =200 @backend;
}

2、所有靜態(tài)資源請求均被重定向到Java后臺,經過權限驗證后才能訪問。

# 文件下載鑒權
location @backend {
    # 去掉訪問路徑中的 /file_server/,然后定義新的請求地址。
    rewrite ^/file_server/(.*)$ /uecom/attach/$1 break;
    # 這里的url后面不可以再拼接地址
    # 定義后臺鑒權服務
    proxy_pass http://192.168.1.101:9999;
    proxy_redirect   off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

JAVA SpringBoot 后臺權限驗證

用戶請求只需要傳遞附件參數和身份token,不再需要傳遞服務器的真實路徑。

例如:

http://127.0.0.1:9222/file_server/img_file?id=123456&token=**********

權限校驗完成,返回設置文件請求路徑

response.setHeader("X-Accel-Redirect", "/file_server" + attach.getAttachPath());

重點是X-Accel-Redirect配置返回服務器文件的真實路徑,該路徑返回后由Nginx內部請求處理,不會暴露給請求用戶。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Nginx使用mirror指令實現接口復制

    Nginx使用mirror指令實現接口復制

    Nginx中使用mirro指令可以方便地實現接口請求的復制,這個功能非常適合用于流量監(jiān)控、數據收集或負載均衡,下面我們就來看看具體的用法吧
    2024-10-10
  • Nginx正則表達式相關的參數和規(guī)則介紹

    Nginx正則表達式相關的參數和規(guī)則介紹

    這篇文章主要給大家介紹了關于Nginx正則表達式相關的參數和規(guī)則的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nginx正則表達式具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • Nginx如何進行流量按比例轉發(fā)

    Nginx如何進行流量按比例轉發(fā)

    Nginx 可以借助split_clients指令或通過 weight 參數以及 Lua 腳本實現流量按比例轉發(fā),下面小編就為大家介紹一下兩種方式具體的操作步驟吧
    2025-03-03
  • 基于Xen的VPS ubuntu+nginx+php安裝教程

    基于Xen的VPS ubuntu+nginx+php安裝教程

    跟蹤vps已經很久了,但是因為需要特殊端口開服務,所以符合條件的多為Xen平臺的vps。眾多比較之后選擇了vpslink在西雅圖機房,速度還不錯。
    2010-07-07
  • nginx代理轉發(fā)配置小結

    nginx代理轉發(fā)配置小結

    Nginx配置代理轉發(fā)是常見需求,涉及編輯nginx.conf文件,添加location塊并配置proxy_pass指令指向后端服務器,感興趣的可以了解一下
    2024-10-10
  • Nginx如何限制IP訪問只允許特定域名訪問

    Nginx如何限制IP訪問只允許特定域名訪問

    我們在使用的時候會遇到很多的惡意IP攻擊,這個時候就要用到Nginx 禁止IP訪問了,下面這篇文章主要給大家介紹了關于Nginx如何限制IP訪問只允許特定域名訪問的相關資料,需要的朋友可以參考下
    2022-07-07
  • 5種nginx負載均衡配置方法分享

    5種nginx負載均衡配置方法分享

    這篇文章主要介紹了5種nginx負載均衡配置方法分享,分別是nginx自帶的3種方法和2種第三方配置方法,需要的朋友可以參考下
    2014-07-07
  • nginx代理參數proxy_pass的實現

    nginx代理參數proxy_pass的實現

    proxy_pass參數用于配置反向代理,本文主要介紹了nginx代理參數proxy_pass的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • nginx虛擬主機防webshell完美版

    nginx虛擬主機防webshell完美版

    nginx虛擬主機防webshell完美版,使用nginx的朋友可以參考下。
    2010-11-11
  • Nginx geoip模塊實現地區(qū)性負載均衡

    Nginx geoip模塊實現地區(qū)性負載均衡

    相信做過awstats的都用過開源的geoip.dat ip數據庫,剛好nginx wiki上有geoip 模塊,這樣就可以實現地區(qū)性的負載均衡,但是maxmind 的ip數據庫對中國的支持不算太好,不過現在也不錯了~
    2010-12-12

最新評論