歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

Nginx Location和Rewrite精心研究淺析

來源:本站整理 作者:佚名 時間:2017-09-12 TAG: 我要投稿

Nginx Location

Nginx由內核和模塊構成,此中內核的計劃異常微小和簡練,完成的事情也異常簡略,僅僅經由過程查找設置裝備擺設文件將客戶端的哀求映射到一個location block,而location是Nginx設置裝備擺設中的一個指令,用于拜訪的URL婚配,而在這個location中所設置裝備擺設的每一個指令將會啟動分歧的模塊去完成響應的事情。
 location功效是由ngx_http_index_module模塊供給的。
 location常放在server上下文。
 location婚配與location的擱置次序無關,而是與location婚配規矩的優先級無關。
罕見的location婚配的URL方法以下:

標志 說明
= 字面準確婚配,準確到文件
^~ URL的前綴婚配,不支撐正則
~ 正則婚配反省,辨別大小寫
~* 正則婚配反省,不辨別大小寫
/ 不帶任何前綴
location婚配優先級以下:

(location =) > (location 完備門路)> (location ^~) > (location ~) > (location ~*) > ( location部門肇端門路) > (location / )

Nginx Location規矩案例:

只會婚配/,優先級比location / 低,= file 婚配到file的優先級最高。

location =/ {
 [ configuration L1  ]
 }
間接婚配到到file,優先級最高。

location =/index.html {
 [ configuration L2  ]
 }
能夠婚配任何哀求,然則因為從 / 開端婚配,一切優先級最低。

location / {
 [ configuration L3  ]
 }
婚配任何故/images/開端的哀求,而且結束婚配其余的loation;

location = /images/ {
  [ configuration L4 ]
 }
婚配以html、txt、gif、jpg、jpeg開頭的URL文件哀求, 然則一切/images/目次的哀求將由 [Configuration L4]處置。

location ~* \.(html|txt|gif|jpg|jpeg)$ {
  [ configuration L5]
  }
瀏覽器提議HTTP Request URI案例與Location規矩案例婚配以下:

 / -> 婚配configuration L3;
 /index.html 婚配configuration L2;  
 /images/ 婚配configuration L4;
 /images/logo.png 婚配configuration L4;
 /img/test.jpg 婚配configuration L5。
臨盆情況中無需在Nginx.conf設置裝備擺設文件中同時增加五種規矩婚配,以下為企業臨盆情況Nginx Location部門設置裝備擺設代碼:

#婚配/,優先級最低
location /
{
    root /var/www/html/;
 expires      60d;
}
#婚配靜態頁面,由當地剖析
location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
 root /var/www/html/;  
 expires      60d;     
}
#婚配靜態頁面,交給后端服務器
location ~ .*\.(jsp|php|cgi|do)$
{
    root /var/www/html/;
    proxy_pass http://linux_web;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header Host  $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   
}
#間接婚配newindex.html,優先級最高
location =/newindex.html
{
    root /var/www/newwww/;
 expires      60d;
}
Nginx Rewrite

Rewirte規矩也稱為規矩重寫,重要功效是完成瀏覽器拜訪HTTP URL的跳轉,其正則表達式是基于Perl說話。平日而言,險些一切的WEB服務器均能夠支撐URL重寫。
Rewrite URL規矩重寫的用處:

對搜索引擎優化(Search Engine Optimization,SEO)友愛,利于搜索引擎抓取網站頁面;

暗藏網站URL實在地點,瀏覽器表現加倍雅觀;

網站變革進級,能夠基于Rewrite暫時重定向到其余頁面。

 Nginx Rewrite是由ngx_http_rewrite_module模塊供給;

 Nginx Rewrite能夠應用正則調換URL,前往重定向頁面。

 Nginx Rewrite是按次序停止婚配的。

 Nginx Rewrite放在server,location,if上下文。

Nginx Rewrite規矩應用中有三個觀點必要懂得,分別是:Rewrite開頭標識符、Rewrite規矩罕用表達式、Nginx Rewrite變量,以下為三個觀點的詳解:

Rewrite開頭標識符:因為Rewrite規矩末端,表現規矩的履行屬性。

last :相當于Apache里的(L)標志,表現完成rewrite婚配,婚配完成后還會向下繼承婚配。
break:本條規矩婚配完成后,停止婚配,再也不婚配前面的規矩.
redirect:前往302暫時重定向,
瀏覽器地點會表現跳轉后的URL地點

permanent:前往301永遠重定向,
瀏覽器地點欄會表現跳轉后的URL地點

此中last和break用來完成URL重寫時,瀏覽器地點欄URL地點穩定。

Rewrite規矩罕用表達式:要用于婚配參數、字符串及過濾設置。

標志 意義
. 婚配任何單個字符
[word] 婚配字符串word
[^word] 不婚配字符串word
aa|bb 可選擇字符串aa|bb
? 婚配0到1個字符
* 婚配0到多個字符
+ 婚配1到多個字符
^ 字符串開端標志
$ 字符串開頭標志
\n 本義字符
Rewrite變量:罕用于婚配HTTP哀求頭信息、瀏覽器主機名、URL等。

HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT;
connection & request: REMOTE_ADDR, QUERY_STRING;

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.fhetww.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        江西十一选五走势图爱彩乐