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

nginx實現重寫功能和防盜鏈功能

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

重寫功能 rewrite

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

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

ngx_http_rewrite_module模塊指令

if指令

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

if (條件匹配) {   
 action
}

官方文檔

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

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

return

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

語法格式:

www.kgc.com/test/
404
return code; #返回給客戶端指定的HTTP狀態(tài)碼
return code [text]; #返回給客戶端的狀態(tài)碼及響應報文的實體內容,可以調用變量,其中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 指令用于設置變量值。
  • 這些變量可以在后續(xù)的請求處理過程中使用。
  • 例如,set $variable_name "value"; 將創(chuàng)建一個名為 $variable_name 的變量并為其賦值 "value"。

break

  • 在 if 指令塊內,break 用于停止執(zhí)行當前 if 塊中的后續(xù)指令,并繼續(xù)處理請求。
  • 在 rewrite 指令的上下文中,break 指令并不常用,因為 rewrite 指令本身在每次重寫后都會終止當前指令集的處理(除非使用了 last 或 break 標志的 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后面指令還會執(zhí)行
    set $my_port $server_port;
    echo $my_port;
 }

rewrite

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

rewrite可以配置在 server、location、if

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

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

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

}

防盜鏈

防盜鏈基于客戶端攜帶的referer實現,referer是記錄打開一個頁面之前記錄是從哪個頁面跳轉過來的標記信息,如果別人只鏈接了自己網站圖片或某個單獨的資源,而不是打開了網站的整個頁面,這就是盜鏈,referer就是之前的那個網站域名,正常的referer信息有以下幾種:

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

盜鏈

服務器1上有一張圖片

服務器二將資源路徑設置為服務器1從而達到白嫖的目的

實現防盜鏈

第一胎服務器

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)$ {     #匹配到jpg|gif|swf|jpeg|bmp 結尾的 
         root  /data/nginx/pc;    根目錄
         valid_referers none blocked *.pc.com pc.com; #定義白名單 允許誰跳轉過來訪問
         if ( $invalid_referer ) {      #不在名單里 返回403
           return   403;
        }
        }
}
}
cd  /data/nginx/pc/

以上就是nginx實現重寫功能和防盜鏈功能的詳細內容,更多關于nginx重新和防盜鏈的資料請關注腳本之家其它相關文章!

相關文章

  • Nginx?Gunicorn?flask項目部署思路分析詳解

    Nginx?Gunicorn?flask項目部署思路分析詳解

    這篇文章主要為大家介紹了Nginx?Gunicorn?flask項目部署思路分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Rhit高效可視化Nginx日志查看工具

    Rhit高效可視化Nginx日志查看工具

    一個格式化 Nginx 日志,可快速閱讀、查看 Nginx 日志的工具。 可以每秒處理百萬行日志數據,感興趣的可以了解一下
    2021-10-10
  • 使用referer指令配置Nginx服務器來防止圖片盜鏈

    使用referer指令配置Nginx服務器來防止圖片盜鏈

    這篇文章主要介紹了使用referer指令配置Nginx服務器來防止圖片盜鏈的方法,文中也簡單介紹了referer指令的一些語法和常用參數,需要的朋友可以參考下
    2015-12-12
  • Nginx出現403?Forbidden的幾種簡單解決方式

    Nginx出現403?Forbidden的幾種簡單解決方式

    這篇文章主要介紹了Nginx出現403?Forbidden的幾種解決思路,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • nginx使用sticky基于cookie的會話保持方式

    nginx使用sticky基于cookie的會話保持方式

    這篇文章主要介紹了nginx使用sticky基于cookie的會話保持方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx實現Nacos反向代理的項目實踐

    Nginx實現Nacos反向代理的項目實踐

    在日常的web網站部署中,經常會用到nginx反向代理,本文主要介紹了Nginx實現Nacos反向代理的項目實踐,Nginx實現Nacos反向代理的項目實踐
    2022-03-03
  • 編寫Go程序對Nginx服務器進行性能測試的方法

    編寫Go程序對Nginx服務器進行性能測試的方法

    這篇文章主要介紹了編寫Go程序對Nginx服務器進行性能測試的方法,包括對其負載均衡和緩存等方面的測試,極力推薦!需要的朋友可以參考下
    2015-06-06
  • Nginx定義域名訪問方式

    Nginx定義域名訪問方式

    這篇文章主要介紹了Nginx定義域名訪問方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 詳解CentOS配置Nginx官方的Yum源

    詳解CentOS配置Nginx官方的Yum源

    這篇文章主要介紹了詳解CentOS配置Nginx官方的Yum源,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 在linux中安裝nginx及在樹莓派ubuntu中安裝nginx的方法

    在linux中安裝nginx及在樹莓派ubuntu中安裝nginx的方法

    在進行軟件安裝時,若遇到報錯,常見的解決方法之一是檢查是否缺失依賴,并嘗試安裝所需的依賴包,記得去掉尖括號,對于nginx服務器,配置文件的位置和管理是關鍵操作之一,通過命令cd進入后,使用sudo nano index.nginx-debian.html命令打開并編輯默認的html文件
    2024-11-11

最新評論