国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)

這篇具有很好參考價值的文章主要介紹了Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

1
同nginx配置server以后,我們可以很方便的直接訪問到文件服務器上的文件資源,但是某些情況下,文件資源可能是隱私圖片,比如客戶注冊時上傳的身份證照片等等,這時候我們需要對圖片訪問進行控制,必須登錄后才能查看到這些隱私圖片。
2
一般來說,我們都是通過后端controller對權(quán)限進行控制,但是nginx作為圖片服務器的情況下,再專門為此寫一個后端程序顯然比較笨重。所以根據(jù)實際情況,我們采用openresty平臺,用lua腳本+redis讀取token的方式即可完成對圖片訪問服務器的權(quán)限控制。

步驟

1.服務器文件目錄設置

正常來說我們的文件存放目錄是統(tǒng)一的,但是由于有些文件是開放訪問的,比如網(wǎng)頁圖片,有的文件是隱私的,比如注冊信息。所以此時我們將文件服務器目錄修改為兩個文件夾,public和private,public用以存放開發(fā)文件,private存放登陸后才可以訪問的文件。

2.openresty下載

進入官網(wǎng)下載頁:http://openresty.org/en/download.html

選擇windows版本的壓縮包進行下載
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)
將壓縮包解壓到本地目錄,openresty是nginx和lua的結(jié)合,此時我們編寫lua腳本并修改nginx.conf,測試openresty。
在openresty目錄下的lua文件夾下新建txt文件,

ngx.say('hello lua!!!')

然后重命名txt為hello.lua
如圖所示
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)
然后在penresty目錄下的conf文件夾下,修改nginx.conf

	 server {
        listen       9000;
        server_name  localhost;
		
		location  / {

			default_type 'text/html';
			rewrite_by_lua_file  lua/hello.lua;
		}
		
	}

Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)
修改完成后,啟動openresty下的nginx.exe
然后通過cmd運行

./nginx -s reload

啟動nginx
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)
然后瀏覽器鍵入 http://127.0.0.1:9000/ 如圖所示即為成功
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)

3 配置nignx權(quán)限控制

	#反向代理進入文件查詢服務器
	upstream download{
		server  127.0.0.1:8282;
	}

    server {
        listen       8282;
        server_name  localhost;
		
		location /file_resources/private/ {
            alias  D:/society/file_resources/private/;
        }
		}
    server {
        listen       8082;
        server_name  localhost;
        
		client_max_body_size 10000m;
		
		
        location  / {
            index      index.html;
        }
        #開放文件,直接進入文件目錄查找
		location /file_resources/public/ {
            alias  D:/society/file_resources/public/;
        }
		
		
		#隱私文件,匹配下載請求前綴,進入token.lua, 進行token鑒權(quán),
		location  /file_resources/private/ {

			default_type 'text/html';
			rewrite_by_lua_file  lua/token.lua;
			proxy_pass  http://download;
		}

	}

4. token.lua編寫

該處獲取請求的token為get請求參數(shù)獲取
如為cookie中, ngx.var.arg_token改為 ngx.var.cookie_token即可

-- 從cookie中獲取token值key為token)
local token = ngx.var.arg_token
--判斷token是否為空,為空返回登錄
if not token then
    ngx.redirect("http://127.0.0.1:8086/login", 302)
--判斷token存在,則根據(jù)redis存儲格式拼寫Token, “..”為字符串拼接
else
   token = "prefix_user_token_" .. ngx.var.arg_token
end

local function close_redis(red)
    if not red then
        return
    end
    local pool_max_idle_time = 30000 --毫秒  
    local pool_size = 50 --連接池大小  
    local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) 
    if not ok then
        ngx.say("close redis error : ",err);
    end
end

-- 連接redis
local redis = require "resty.redis";
local red = redis:new();
red:set_timeout(2000)

local ok,err = red:connect("192.168.0.28", 6379)
if not ok then
  ngx.say("failed to connect: ", err)
end

-- 根據(jù)自身redis是否有密碼開啟本部分
--local res, err = red:auth("password")
--if not res then
--  ngx.say("failed to authenticate: ", err)
--end

-- redis中若 key 存在返回 1 ,否則返回 0 。
local resp, err = red:exists(token) 
if not resp then  
    ngx.say("get msg error : ", err)  
    return close_redis(red)  
end  
if resp == ngx.null then  
    resp = ''  
end  
if resp == 0 then
--   ngx.exit(ngx.HTTP_FORBIDDEN) 
    ngx.redirect("http://127.0.0.1:8086/login", 302)
end
close_redis(red)

完成后 執(zhí)行 nginx -s reload重啟nginx即可

5.結(jié)果展示

開開放圖片Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)

隱私圖片訪問失敗

如圖通過開發(fā)工具可以看到訪問的是圖片地址,由于token為空,所以直接轉(zhuǎn)轉(zhuǎn)到了login頁面
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)

隱私圖片訪問成功

帶上token,訪問成功
Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)文章來源地址http://www.zghlxwxcb.cn/news/detail-488775.html

到了這里,關于Windows 環(huán)境下nginx 靜態(tài)資源服務器(圖片,文件)權(quán)限控制(nginx/openresty/lua)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • [Linux服務器 ] nginx 配置圖片靜態(tài)訪問方法

    [Linux服務器 ] nginx 配置圖片靜態(tài)訪問方法

    一.??Nginx安裝 1.更新軟件包列表:打開終端,并使用以下命令更新軟件包列表: sudo yum update 2.安裝 EPEL 存儲庫:EPEL 存儲庫提供了額外的軟件包,其中包括 Nginx。使用以下命令安裝 EPEL 存儲庫: sudo yum install epel-release 3.安裝 Nginx:使用以下命令安裝 Nginx: sudo yum install nginx

    2024年02月14日
    瀏覽(39)
  • 通過nginx訪問服務器指定目錄下圖片資源

    通過nginx訪問服務器指定目錄下圖片資源

    實現(xiàn)步驟: 1、創(chuàng)建文件夾并且上傳圖片 2、查看nginx進程 ps -ef | grep nginx? ? 3、修改nginx配置文件 根據(jù)步驟2查看nginx安裝目錄;(通常nginx安裝目錄為?cd /usr/local/nginx/) 如果自定義的安裝目錄則根據(jù)實際情況而定 進入到nginx安裝目錄下:? 1、cd /usr/local/nginx/ 2、cd conf 3、vim

    2024年02月15日
    瀏覽(24)
  • 分布式 - 服務器Nginx:基礎系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    分布式 - 服務器Nginx:基礎系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    1. sendfile 指令 請求靜態(tài)資源的過程:客戶端通過網(wǎng)絡接口向服務端發(fā)送請求,操作系統(tǒng)將這些客戶端的請求傳遞給服務器端應用程序,服務器端應用程序會處理這些請求,請求處理完成以后,操作系統(tǒng)還需要將處理得到的結(jié)果通過網(wǎng)絡適配器傳遞回去。 sendfile 指令是用于將

    2024年02月09日
    瀏覽(23)
  • 分布式 - 服務器Nginx:基礎系列之Nginx靜態(tài)資源配置指令server_name | listen | location | root | alias | index| error_page

    分布式 - 服務器Nginx:基礎系列之Nginx靜態(tài)資源配置指令server_name | listen | location | root | alias | index| error_page

    通過瀏覽器發(fā)送一個HTTP請求實現(xiàn)從客戶端發(fā)送請求到服務器端獲取所需要內(nèi)容后并把內(nèi)容回顯展示在頁面。這個時候,我們所請求的內(nèi)容就分為兩種類型,一類是靜態(tài)資源、一類是動態(tài)資源。靜態(tài)資源即指在服務器端真實存在并且能直接拿來展示的一些文件,比如常見的ht

    2024年02月04日
    瀏覽(24)
  • 在Windows 環(huán)境下使用 Nginx 搭建 HTTP文件服務器 實現(xiàn)文件下載 全步驟(詳細)

    在Windows 環(huán)境下使用 Nginx 搭建 HTTP文件服務器 實現(xiàn)文件下載 全步驟(詳細)

    “Nginx 是一款輕量級的 HTTP 服務器,采用事件驅(qū)動的異步非阻塞處理方式框架,這讓其具有極好的 IO 性能,時常用于服務端的 反向代理 和 負載均衡 。 它是由俄羅斯人 伊戈爾·賽索耶夫為俄羅斯訪問量第二的 Rambler.ru 站點開發(fā)的,并于2004年首次公開發(fā)布的。 Nginx 是什么,

    2024年02月03日
    瀏覽(50)
  • workflow系列教程(6)實現(xiàn)靜態(tài)資源服務器

    如果覺得寫的可以,請給一個點贊+關注支持一下 觀看之前請先看,往期的博客教程,否則這篇博客沒辦法看懂 workFlow c++異步網(wǎng)絡庫編譯教程與簡介 C++異步網(wǎng)絡庫workflow入門教程(1)HTTP任務 C++異步網(wǎng)絡庫workflow系列教程(2)redis任務 workflow系列教程(3)Series串聯(lián)任務流 workflow系列教程

    2024年04月13日
    瀏覽(23)
  • 圖片、文件資源服務器(minio服務器)

    1.MinioConfig配置類 2.MinioUtil工具類 3.對應使用方法

    2024年02月11日
    瀏覽(41)
  • Linux服務器遠程訪問通過Tomcat部署的靜態(tài)資源

    Linux服務器遠程訪問通過Tomcat部署的靜態(tài)資源

    1.1 安裝Java 下載jdk8 切換到root用戶,創(chuàng)建文件夾/usr/local/java,將下載的jdk壓縮包上傳到該目錄下,解壓 編輯配置文件,配置環(huán)境變量,在末尾添加如下內(nèi)容 重載激活配置 檢查安裝成功 1.2 安裝Tomcat 下載tomcat 切換到root用戶,創(chuàng)建文件夾/usr/local/tomcat,將下載的tomcat壓縮包上傳

    2024年01月18日
    瀏覽(30)
  • brew+nginx配置靜態(tài)文件服務器

    brew+nginx配置靜態(tài)文件服務器

    背景 一下子閑下來了,了解的我的人都知道我閑不下來。于是,我在思考COS之后,決定自己整一個本地的OSS,實現(xiàn)靜態(tài)文件的訪問。那么,首屈一指的就是我很熟的 nginx 。也算是個小復習吧,復習一下 nginx 代理靜態(tài)文件。 nginx的使用場景 反向代理 作為中間層的服務器,將

    2024年02月13日
    瀏覽(29)
  • 如何使用Nginx搭建詳細的靜態(tài)文件服務器【經(jīng)典】

    Nginx是一種強大的Web服務器,可以用于托管靜態(tài)文件。本文將詳細介紹如何使用Nginx搭建一個靜態(tài)文件服務器,使您能夠輕松地瀏覽目錄、導航子目錄和文件,并通過瀏覽器下載文件。 以下是使用Nginx搭建靜態(tài)文件服務器的詳細步驟: 步驟1:安裝Nginx 首先,確保您已經(jīng)安裝了

    2024年02月08日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包