最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx權(quán)限控制文件的預(yù)覽和下載方式

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

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

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

實現(xiàn)原理

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

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

Nginx也具有此功能,但實現(xiàn)方式略有不同。

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

用戶請求文件,權(quán)限控制時序圖

實現(xiàn)步驟

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

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

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

# 文件下載鑒權(quán)
location @backend {
    # 去掉訪問路徑中的 /file_server/,然后定義新的請求地址。
    rewrite ^/file_server/(.*)$ /uecom/attach/$1 break;
    # 這里的url后面不可以再拼接地址
    # 定義后臺鑒權(quán)服務(wù)
    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 后臺權(quán)限驗證

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

例如:

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

權(quán)限校驗完成,返回設(shè)置文件請求路徑

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

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

總結(jié)

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

相關(guān)文章

  • nginx如何配置參數(shù)以及變量

    nginx如何配置參數(shù)以及變量

    這篇文章主要介紹了nginx如何配置參數(shù)以及變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟

    nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟

    這篇文章主要給大家介紹了關(guān)于nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Apache select和Nginx epoll模型的用法對比

    Apache select和Nginx epoll模型的用法對比

    這篇文章主要介紹了Apache select和Nginx epoll模型的用法對比,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Nginx實現(xiàn)Nacos反向代理的項目實踐

    Nginx實現(xiàn)Nacos反向代理的項目實踐

    在日常的web網(wǎng)站部署中,經(jīng)常會用到nginx反向代理,本文主要介紹了Nginx實現(xiàn)Nacos反向代理的項目實踐,Nginx實現(xiàn)Nacos反向代理的項目實踐
    2022-03-03
  • Nginx限流配置的幾種方案的使用小結(jié)

    Nginx限流配置的幾種方案的使用小結(jié)

    Nginx為我們提供了請求限制模塊、基于令牌桶算法的流量限制模塊,可以方便的控制令牌速率,自定義調(diào)節(jié)限流,實現(xiàn)基本的限流控制,下面就來介紹一下
    2025-05-05
  • Nginx配置實現(xiàn)用IP灰度測試(不同用戶ID)

    Nginx配置實現(xiàn)用IP灰度測試(不同用戶ID)

    本文主要介紹了使用Nginx配置實現(xiàn)基于IP的灰度發(fā)布實驗,以及如何通過不同用戶ID測試灰度發(fā)布,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • nginx配置相關(guān)介紹

    nginx配置相關(guān)介紹

    本文為大家介紹一下nginx配置的相關(guān)介紹,供大家參考
    2013-02-02
  • 詳解nginx websocket配置

    詳解nginx websocket配置

    這篇文章主要介紹了詳解nginx websocket配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • nginx外網(wǎng)訪問內(nèi)網(wǎng)站點配置操作

    nginx外網(wǎng)訪問內(nèi)網(wǎng)站點配置操作

    這篇文章主要介紹了nginx外網(wǎng)訪問內(nèi)網(wǎng)站點配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Nginx反向代理入門實戰(zhàn)指南

    Nginx反向代理入門實戰(zhàn)指南

    反向代理:反向代理也叫reverse proxy,指的是代理外網(wǎng)用戶的請求到內(nèi)部的指定web服務(wù)器,并將數(shù)據(jù)返回給用戶的一種方式,這是用的比較多的一種方式,下面這篇文章主要給大家介紹了關(guān)于Nginx反向代理的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評論

平度市| 巴林右旗| 南和县| 新郑市| 松阳县| 从江县| 松潘县| 溆浦县| 兴宁市| 大埔区| 中山市| 宁晋县| 诏安县| 英山县| 聂荣县| 腾冲县| 阜平县| 芷江| 行唐县| 曲沃县| 长岭县| 太保市| 图木舒克市| 老河口市| 兴海县| 平原县| 潮州市| 乌苏市| 渝北区| 长治县| 扶风县| 海伦市| 乌兰县| 宿迁市| 托克托县| 于都县| 运城市| 三明市| 体育| 图木舒克市| 肇东市|