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

nginx實(shí)現(xiàn)重寫功能和防盜鏈功能

 更新時(shí)間:2024年06月06日 09:47:54   作者:日出_  
這篇文章主要介紹了nginx實(shí)現(xiàn)重寫功能和防盜鏈功能,Nginx服務(wù)器利用 ngx_http_rewrite_module 模塊解析和處理rewrite請求,防盜鏈基于客戶端攜帶的referer實(shí)現(xiàn),文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下

重寫功能 rewrite

Nginx服務(wù)器利用 ngx_http_rewrite_module 模塊解析和處理rewrite請求,此功能依靠 PCRE(perl compatible regular expression),因此編譯之前要安裝PCRE庫,rewrite是nginx服務(wù)器的重要功能之

一,用于實(shí)現(xiàn)URL的重寫,URL的重寫是非常有用的功能,比如它可以在我們改變網(wǎng)站結(jié)構(gòu)之后,不需要客戶端修改原來的書簽,也無需其他網(wǎng)站修改我們的鏈接,就可以設(shè)置為自動(dòng)訪問,另外還可以在一定程度上提高網(wǎng)站的安全性。

ngx_http_rewrite_module模塊指令

if指令

用于條件匹配判斷,并根據(jù)條件判斷結(jié)果選擇不同的Nginx配置,可以配置在server或location塊中進(jìn)行配置,Nginx的if語法僅能使用if做單次判斷,不支持使用if else或者if elif這樣的多重判斷,用法如下:

if (條件匹配) {   
 action
}

官方文檔

https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if

實(shí)際操作 用戶訪問的文件不存在 直接返回主頁

return

return用于完成對請求的處理,并直接向客戶端返回響應(yīng)狀態(tài)碼,比如:可以指定重定向URL(對于特殊重定向狀態(tài)碼,301/302等) 或者是指定提示文本內(nèi)容(對于特殊狀態(tài)碼403/500等),處于此指令后的所有配置都將不被執(zhí)行,return可以在server、if 和 location塊進(jìn)行配置

語法格式:

www.kgc.com/test/
404
return code; #返回給客戶端指定的HTTP狀態(tài)碼
return code [text]; #返回給客戶端的狀態(tài)碼及響應(yīng)報(bào)文的實(shí)體內(nèi)容,可以調(diào)用變量,其中text如果有空格,需要用單或雙引號
return code url; #返回給客戶端的URL地址    

例子:

server { 
    listen 80;
    server_name www.kgc.com;
    root /data/nginx/pc/;
	location /{
        root /data/nginx/pc/;

}
  location /test {      #訪問test 直接返回403
	return 403;         #可以改成666    
  }

}

set

  • set 指令用于設(shè)置變量值。
  • 這些變量可以在后續(xù)的請求處理過程中使用。
  • 例如,set $variable_name "value"; 將創(chuàng)建一個(gè)名為 $variable_name 的變量并為其賦值 "value"。

break

  • 在 if 指令塊內(nèi),break 用于停止執(zhí)行當(dāng)前 if 塊中的后續(xù)指令,并繼續(xù)處理請求。
  • 在 rewrite 指令的上下文中,break 指令并不常用,因?yàn)?nbsp;rewrite 指令本身在每次重寫后都會(huì)終止當(dāng)前指令集的處理(除非使用了 last 或 break 標(biāo)志的 rewrite 指令)。
if ($slow) {
   limit_rate 10k;
   break;
}
location /main {
   root /data/nginx/html/pc;
   index index.html;
   default_type text/html;
    set $name kgc;
    echo $name;
   break;  #location塊中break后面指令還會(huì)執(zhí)行
    set $my_port $server_port;
    echo $my_port;
 }

rewrite

通過正則表達(dá)式的匹配來改變URI,可以同時(shí)存在一個(gè)或多個(gè)指令,按照順序依次對URI進(jìn)行匹配,rewrite主要是針對用戶請求的URL或者是URI做具體處理

rewrite可以配置在 server、location、if

rewrite可以配置在 server、location、if
語法格式 :
rewrite regex               replacement(www.baidu.com)        [flag];
        正則匹配原始訪問url    替代你想讓客戶訪問的                   標(biāo)志  ()premanent301   redirect302  break  last

注意:如果在同一級配置塊中存在多個(gè)rewrite規(guī)則,那么會(huì)自上而下逐個(gè)檢查;被某條件規(guī)則替換完成后,會(huì)重新一輪的替換檢查,隱含有循環(huán)機(jī)制,但不超過10次;如果超過,提示500響應(yīng)碼,[flag]所表示的標(biāo)志位用于控制此循環(huán)機(jī)制如果替換后的URL是以http://或https://開頭,則替換結(jié)果會(huì)直接以重定向返回給客戶端, 即永久重定向 301

#訪問  bj   跳轉(zhuǎn)到  beijing  
location /bj {
   root /data/nginx/pc;   
   rewrite ^/bj/(.*)    /beijing/$1   permanent;

}

防盜鏈

防盜鏈基于客戶端攜帶的referer實(shí)現(xiàn),referer是記錄打開一個(gè)頁面之前記錄是從哪個(gè)頁面跳轉(zhuǎn)過來的標(biāo)記信息,如果別人只鏈接了自己網(wǎng)站圖片或某個(gè)單獨(dú)的資源,而不是打開了網(wǎng)站的整個(gè)頁面,這就是盜鏈,referer就是之前的那個(gè)網(wǎng)站域名,正常的referer信息有以下幾種:

none:#請求報(bào)文首部沒有referer首部,比如用戶直接在瀏覽器輸入域名訪問web網(wǎng)站,就沒有referer信息。
blocked:#請求報(bào)文有referer首部,但無有效值,比如為空。
server_names:#referer首部中包含本主機(jī)名及即nginx 監(jiān)聽的server_name。
arbitrary_string:#自定義指定字符串,但可使用*作通配符。示例: *.kgc.org www.kgc.*
regular expression:#被指定的正則表達(dá)式模式匹配到的字符串,要使用~開頭,例如:~.*\.kgc\.com

盜鏈

服務(wù)器1上有一張圖片

服務(wù)器二將資源路徑設(shè)置為服務(wù)器1從而達(dá)到白嫖的目的

實(shí)現(xiàn)防盜鏈

第一胎服務(wù)器

vim   /apps/nginx/conf.d/pc.conf
server{
        listen 80;/
        server_name  www.pc.com;
        root    /data/nginx/pc;
        location  / {
        root  /data/nginx/pc;
}
        location ~* \.(jpg|gif|swf|jpeg|bmp)$ {     #匹配到j(luò)pg|gif|swf|jpeg|bmp 結(jié)尾的 
         root  /data/nginx/pc;    根目錄
         valid_referers none blocked *.pc.com pc.com; #定義白名單 允許誰跳轉(zhuǎn)過來訪問
         if ( $invalid_referer ) {      #不在名單里 返回403
           return   403;
        }
        }
}
}
cd  /data/nginx/pc/

以上就是nginx實(shí)現(xiàn)重寫功能和防盜鏈功能的詳細(xì)內(nèi)容,更多關(guān)于nginx重新和防盜鏈的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nginx添加ssl模塊的方法教程

    nginx添加ssl模塊的方法教程

    這篇文章主要給大家介紹了關(guān)于nginx添加ssl模塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)許吧。
    2017-12-12
  • Nginx proxy_ssl_server_name 解決后端多域名證書匹配失敗的方法

    Nginx proxy_ssl_server_name 解決后端多域名證書匹配失敗的方法

    本文介紹了Nginx反向代理HTTPS后端時(shí)的關(guān)鍵指令proxy_ssl_server_name,當(dāng)后端托管多域名證書時(shí),Nginx需啟用SNI擴(kuò)展以正確匹配證書,本文詳細(xì)分析了問題場景、基礎(chǔ)解決方案,并提供了進(jìn)階配置方案,感興趣的可以了解一下
    2026-04-04
  • nginx部署靜態(tài)頁面方式

    nginx部署靜態(tài)頁面方式

    文章介紹了在CentOS 7上安裝和配置Nginx服務(wù)器的步驟,包括監(jiān)聽80端口、啟動(dòng)配置服務(wù)器、訪問路徑設(shè)置以及解決常見的403錯(cuò)誤(權(quán)限問題、目錄不存在、SELinux設(shè)置問題)
    2026-03-03
  • 利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟

    利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟

    這篇文章主要介紹了利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • nginx日志導(dǎo)入elasticsearch的方法示例

    nginx日志導(dǎo)入elasticsearch的方法示例

    這篇文章主要介紹了nginx日志導(dǎo)入elasticsearch的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • nginx代理minio的實(shí)現(xiàn)示例

    nginx代理minio的實(shí)現(xiàn)示例

    本文介紹通過Nginx代理MinIO實(shí)現(xiàn)預(yù)簽名URL的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Nginx服務(wù)器限制IP訪問的各種情況全解析

    Nginx服務(wù)器限制IP訪問的各種情況全解析

    這篇文章主要介紹了Nginx服務(wù)器限制IP訪問的各種情況全解析,包括限制同一IP在一段時(shí)間內(nèi)的訪問次數(shù)和全局限IP訪問以及限制IP訪問指定目錄等情況,需要的朋友可以參考下
    2015-08-08
  • Nginx查找訪問前10的IP的方法實(shí)踐

    Nginx查找訪問前10的IP的方法實(shí)踐

    有時(shí)候,您可能希望查找訪問量最高的 IP 地址,以便進(jìn)一步分析或采取措施,就來介紹一下Nginx查找訪問前10的IP的方法實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 神器!最佳 Nginx 日志分析工具 GoAccess

    神器!最佳 Nginx 日志分析工具 GoAccess

    非常小又精悍的 Nginx 日志分析工具 GoAccess,今天在 CentOS VPS 上安裝測試了一番,就2個(gè)字,神器!
    2014-02-02
  • 詳解如何部署H5游戲到nginx服務(wù)器

    詳解如何部署H5游戲到nginx服務(wù)器

    這篇文章主要介紹了詳解如何部署H5游戲到nginx服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評論

日喀则市| 海宁市| 横峰县| 务川| 商河县| 凤庆县| 察哈| 小金县| 囊谦县| 江都市| 定兴县| 金塔县| 寿阳县| 大方县| 津南区| 潞西市| 威信县| 河池市| 洪雅县| 嘉兴市| 龙井市| 浮山县| 屏东县| 龙山县| 麟游县| 塔河县| 龙陵县| 长葛市| 西畴县| 芮城县| 永城市| 金昌市| 修武县| 万源市| 大厂| 周宁县| 噶尔县| 游戏| 东丰县| 历史| 上虞市|