成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

nginx學(xué)習(xí)之——rewrite

Lavender / 3177人閱讀

摘要:當(dāng)前請求在指令中指定的值。請求主機頭字段,否則為服務(wù)器名稱??蛻舳诵畔⒖蛻舳诵畔⑦@個變量可以限制連接速率。已經(jīng)經(jīng)過驗證的用戶名。請求使用的協(xié)議,通常是或。請求到達(dá)服務(wù)器的端口號。包含請求參數(shù)的原始,不包含主機名,如。

rewrite配置在server{}、location{}、if{}段中 ,對Url中除去域名和參數(shù)的字符串起作用

一、語法:rewrite regex replacement [flag];

regex:服務(wù)器接收到的請求地址
replacement:重寫后的請求地址
[flag]標(biāo)志位:

last: 表示完成rewrite

break: 表示跳出rewrite

redirect: 返回302臨時重定向

permanent: 返回301永久重定向

二、rewrite與location

rewrite是在同一域名內(nèi)更改獲取資源的路徑
location是對一類路徑做控制訪問或反向代理,可以proxy_pass到其他機器。

三、服務(wù)器解析url請求的過程
st=>start: URL請求
op1=>operation: server{}的rewrite
cond1=>condition: 是否重寫url
op2=>operation: location匹配
cond2=>condition: 是否重寫
op3=>operation: location{}的rewrite
cond3=>condition: 是否重寫
op4=>operation: 響應(yīng)結(jié)果
e=>end: 結(jié)束

st->op1->cond1
cond1(yes,right)->op1
cond1(no)->op2->cond2
cond2(yes,right)->op1
cond2(no)->op3->cond3
cond3(yes,right)->op1
cond3(no)->op4->e

這樣的循環(huán)超過10次,服務(wù)器會返回500錯誤提示

四、相關(guān)指令

set : 設(shè)置變量
return : 返回狀態(tài)碼
if(條件){} :設(shè)定條件,再進(jìn)行重寫
if條件判斷寫法:
1: = 用于字符串比較
2: ~ 區(qū)分大小寫正則匹配;
  ~* 不區(qū)分大小寫正則匹配
3: -f 是否為文件
  -d 是否為目錄
  -e 是否存在
4: 當(dāng)表達(dá)式只是一個變量時,如果值為空或任何以0開頭的字符串都會當(dāng)做false
eg.

 if  ($remote_addr = 192.168.1.100) {
                return 403;
}
 if ($http_user_agent ~ MSIE) {
                rewrite ^.*$ /ie.htm;
                break; #不break會循環(huán)重定向
 }
 if (!-e $document_root$fastcgi_script_name) {
    rewrite ^.*$ /404.html break;
 } 

五、重寫示例
Goods-3.html ---->Goods.php?goods_id=3
goods-([d]+).html ---> goods.php?goods_id =$1  

location /ecshop {
index index.php;
rewrite goods-([d]+).html$ /ecshop/goods.php?id=$1;
rewrite article-([d]+).html$ /ecshop/article.php?id=$1;
rewrite category-(d+)-b(d+).html /ecshop/category.php?id=$1&brand=$2;

rewrite category-(d+)-b(d+)-min(d+)-max(d+)-attr([d.]+).html /ecshop/category.php?id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5;

rewrite category-(d+)-b(d+)-min(d+)-max(d+)-attr([d+.])-(d+)-([^-]+)-([^-]+).html /ecshop/category.php?id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5&page=$6&sort=$7&order=$8;
}

location ~* .(gif|jpg|png|swf|flv)$ {
    valid_referers none blocked www.jefflei.com www.leizhenfang.com;
    if ($invalid_referer) {
        return 404;
    } //防盜鏈
}

http {
    # 定義image日志格式
    log_format imagelog "[$time_local] " $image_file " " $image_type " " $body_bytes_sent " " $status;
    # 開啟重寫日志
    rewrite_log on;
 
    server {
        root /home/www;
 
        location / {
                # 重寫規(guī)則信息
                error_log logs/rewrite.log notice; 
                # 注意這里要用‘’單引號引起來,避免{}
                rewrite "^/images/([a-z]{2})/([a-z0-9]{5})/(.*).(png|jpg|gif)$" /data?file=$3.$4;
                # 注意不能在上面這條規(guī)則后面加上“l(fā)ast”參數(shù),否則下面的set指令不會執(zhí)行
                set $image_file $3;
                set $image_type $4;
        }
 
        location /data {
                # 指定針對圖片的日志格式,來分析圖片類型和大小
                access_log logs/images.log mian;
                root /data/images;
                # 應(yīng)用前面定義的變量。判斷首先文件在不在,不在再判斷目錄在不在,如果還不在就跳轉(zhuǎn)到最后一個url里
                try_files /$arg_file /image404.html;
        }
        location = /image404.html {
                # 圖片不存在返回特定的信息
                return 404 "image not found
";
        }
}
六、全局變量

$args : #這個變量等于請求行中的參數(shù),同$query_string

$content_length : 請求頭中的Content-length字段。

$content_type : 請求頭中的Content-Type字段。

$document_root : 當(dāng)前請求在root指令中指定的值。

$host : 請求主機頭字段,否則為服務(wù)器名稱。

$http_user_agent : 客戶端agent信息

$http_cookie : 客戶端cookie信息

$limit_rate : 這個變量可以限制連接速率。

$request_method : 客戶端請求的動作,通常為GET或POST。

$remote_addr : 客戶端的IP地址。

$remote_port : 客戶端的端口。

$remote_user : 已經(jīng)經(jīng)過Auth Basic Module驗證的用戶名。

$request_filename :當(dāng)前請求的文件路徑,由root或alias指令與URI請求生成。

$scheme : HTTP方法(如http,https)。

$server_protocol : 請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。

$server_addr : 服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值。

$server_name : 服務(wù)器名稱。

$server_port : 請求到達(dá)服務(wù)器的端口號。

$request_uri : 包含請求參數(shù)的原始URI,不包含主機名,如:”/foo/bar.php?arg=baz”。

$uri : 不帶請求參數(shù)的當(dāng)前URI,$uri不包含主機名,如”/foo/bar.html”。

$document_uri : 與$uri相同。

例:http://localhost:88/test1/test2/test.php

$host:localhost
$server_port:88
$request_uri:http://localhost:88/test1/tes...
$document_uri:/test1/test2/test.php
$document_root:/var/www/html
$request_filename:/var/www/html/test1/test2/test.php

參考文檔

https://linux.cn/article-5714...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39577.html

相關(guān)文章

  • laravel學(xué)習(xí)之nginx配置站點

    摘要:前言設(shè)置項目的域名站點的時候,需要對做一些對應(yīng)的重寫配置,用來做相關(guān)路由,否則會報。 前言 設(shè)置laravel項目的域名站點的時候,需要對nginx做一些對應(yīng)的重寫rewrite配置,用來做相關(guān)路由,否則會報404。 nginx.conf配置 server { listen 80; server_name xxx.com; #域名 root /data/www...

    frank_fun 評論0 收藏0
  • laravel學(xué)習(xí)之nginx配置站點

    摘要:前言設(shè)置項目的域名站點的時候,需要對做一些對應(yīng)的重寫配置,用來做相關(guān)路由,否則會報。 前言 設(shè)置laravel項目的域名站點的時候,需要對nginx做一些對應(yīng)的重寫rewrite配置,用來做相關(guān)路由,否則會報404。 nginx.conf配置 server { listen 80; server_name xxx.com; #域名 root /data/www...

    Jaden 評論0 收藏0
  • nginx學(xué)習(xí)之——location

    摘要:需要注意的是,當(dāng)普通匹配的結(jié)果是嚴(yán)格精確的,則停止匹配返回結(jié)果。文字說明進(jìn)行精準(zhǔn)匹配,檢查是否在精準(zhǔn)匹配模式下,匹配成功,若成功則停止檢查。判斷是否可以進(jìn)行正則匹配,如果存在符號的段表示不進(jìn)行正則匹配,立即返回結(jié)果。 Location 匹配模式 一、語法 location [=|~|~*|^~] uri{ root /var/www/html index index.h...

    BoYang 評論0 收藏0
  • Docker學(xué)習(xí)之Dockerfile 構(gòu)建鏡像(3)

    摘要:我們可以了解到,鏡像的定制實際上就是定制每一層所添加的配置文件。指令之指令的目的就是來指定基礎(chǔ)鏡像。指令之指令是用來執(zhí)行命令行命令的。由于命令行的強大能力,指令在定制鏡像時是最常用的指令之一。構(gòu)建鏡像這里我們使用了命令進(jìn)行鏡像構(gòu)建。 我們可以了解到,鏡像的定制實際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu)建、操作的命令都寫入一個腳本,用這個腳本來構(gòu)建、定制鏡...

    Lavender 評論0 收藏0
  • 【搶先領(lǐng)】《React 學(xué)習(xí)之道》我們翻譯了一本最簡單,且最實用的 React 實戰(zhàn)教程……

    摘要:學(xué)習(xí)之道簡體中文版通往實戰(zhàn)大師之旅掌握最簡單,且最實用的教程。前言學(xué)習(xí)之道這本書使用路線圖中的精華部分用于傳授,并將其融入一個獨具吸引力的真實世界的具體代碼實現(xiàn)。完美展現(xiàn)了的優(yōu)雅。膜拜的學(xué)習(xí)之道是必讀的一本書。 《React 學(xué)習(xí)之道》The Road to learn React (簡體中文版) 通往 React 實戰(zhàn)大師之旅:掌握 React 最簡單,且最實用的教程。 showIm...

    oneasp 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<