Nginx配置反向代理 rewrite


一,重定向功能

Rewrite是Nginx服務器提供的一個重要的功能,它可以實現URL重定向功能。

rewrite regex replacement [flag];

rewrite的含義:該指令是實現URL重寫的指令。
regex的含義:用於匹配URI的正則表達式。
replacement:將regex正則匹配到的內容替換成 replacement。
flag: flag標記。

flag有如下值:

last: 本條規則匹配完成后,繼續向下匹配新的location URI 規則。(不常用)
break: 本條規則匹配完成即終止,不再匹配后面的任何規則(不常用)。
redirect: 返回302臨時重定向,瀏覽器地址會顯示跳轉新的URL地址。
permanent: 返回301永久重定向。瀏覽器地址會顯示跳轉新的URL地址。

列如:

rewrite ^/(.*) http://www.baidu.com/$1 permanent;

說明:
rewrite 為固定關鍵字,表示開始進行rewrite匹配規則。
regex 為 ^/(.*)。 這是一個正則表達式,匹配完整的域名和后面的路徑地址。
replacement就是 http://www.baidu.com/11這塊了,其中1是取regex部分()里面的內容。如果匹配成功后跳轉到的URL。
flag 就是 permanent,代表永久重定向的含義,即跳轉到 http://www.baidu.com/$1 地址上。

location /tv {
   rewrite ^(.*) http://s.jktv.tv/wifi/test/video/short-video/ redirect;
}

 

二,防盜鏈

注:因客戶端請求可以模擬referers來源,所以該方法也不是最好的解決方式

如下基本配置,當有網絡連接對以 gif、jpg、png為后綴的圖片資源時候、當有以swf、flv為后綴的媒體資源時、或以 rar、zip為后綴的壓縮資源發起請求時,如果檢測到Referer頭域中沒有符合 valid_referers指令的話,那么說明不是本站的資源請求。

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ 該配置的含義是 設置防盜鏈的文件類型。

valid_referers none blocked www.xxx.com www.yyy.com *.baidu.com *.tabobao.com; 可以理解為白名單,允許文件鏈出的域名白名單,如果請求的資源文件不是以這些域名開頭的話,就說明請求的資源文件不是該域下的請求,因此可以判斷它是盜鏈。因此如果不是該域下的請求,就會使用 Rewrite進行重定向到 http://www.xxx.com/images/forbidden.png 這個圖片,比如這張圖片是一個x或其他的標識,然后其他的網站就訪問不了你這個圖片哦。

server {
  listen 8080;
  server_name xxx.abc.com
  location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {
    valid_referers none blocked www.xxx.com www.yyy.com *.baidu.com  *.tabobao.com;
    if ($invalid_referer) {
      rewrite ^/ http://www.xxx.com/images/forbidden.png;
    }
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM