1. 程式人生 > >Nginx之路徑匹配與引數修改-yellowcong

Nginx之路徑匹配與引數修改-yellowcong

資源進行分離,jsp ,html,img的動靜分離,對於不同的字尾結尾的資料,匹配到不同的伺服器上。同時,路徑的匹配還可以用於做url的重寫,修改url的請求格式,將/age/name/email修改為 age=?&name=?&email=?的格式

localtion語法

匹配模式 語言法 例子
精準匹配 localtion=pattern{} location = /50x.html( error_page 500 502 503 504 /50x.html;)
一般匹配 localtion pattern location /goods (/goodsxxx的訪問匹配)
正則匹配 localtion ~pattern{} location ~ .jsp$(以jsp結尾的檔案)

備註。pattern表示的是表示式

以xx結尾的

 upstream myapp{
server 192.168.100.10:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s;
    }

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
access_log yellow/yellow.access.log main; #任何以jsp結尾的請求 \.jsp$ location ~ \.jsp$ { #root html; #index index.html index.htm; proxy_set_header X-real-ip $remote_addr; proxy_pass http://myapp; } //錯誤頁面資訊配置 error_page 500 502 503 504 /50x.html; location = /50
x.html { root html; } }

這裡寫圖片描述

語法判斷

#虛擬主機配置:
server {
    listen 1234;
    server_name bhz.com;
    location / {
    #正則表示式匹配uri方式:在/usr/local/nginx/bhz.com下 建立一個test123.html 然後使用正則匹配
    #location ~ test {
        ## 重寫語法:if return (條件 = ~ ~*)
        #ip判斷,當ip是192.168.1.200 ,返回404
        if ($remote_addr = 192.168.1.200) {
               return 404;
        }       

        #當user_agent(瀏覽器)是火狐的,就跳轉到火狐頁面
        # ~*  表示包含 firefox的 ,不區分大小寫的匹配
        if ($http_user_agent ~* firefox) {
               #^.*$ 表示當前的請求地址
               rewrite ^.*$ /firefox.html;
               # #直接退出,不然就會有兩個請求問題,報錯4040
               break;
        }           
        #預設是的文件節點是   yellowcong.com         
        root yellowcong.com;
        index index.html;
    }

    #判斷商品的路徑
    location /goods {
        #{1,5} 表示1-5位的數字
        #商品為goods-121.html
        rewrite "goods-(\d{1,5})\.html" /goods-ctrl.html?id=$(1);
        #路徑
        root yellowcong.com;
        #頁面
        index index.html;
    }

    #配置訪問日誌
    access_log logs/yellowcong.com.access.log main;
}

引數修改

通過修改$args來修該請求的引數。

location /testnnnn{  
      set $args "foo=1&bar=2";  
      proxy_pass http://localhost:8080/testnnnn;  
}  

url重寫

對於localtion可以像分組一樣,對url進行分組,獲取到傳遞的引數,然後傳遞到後臺

#將/info/22/yellowcong/[email protected] 轉化為 /info?age=12&name=yellowcon&email=717350389
#[0-9]表示 0-9 範圍i 數字 也可以使用\d+
#+ 表示1個或多個
#w+ 表示是字串
#$ 表示結尾 
rewrite ^/info/([0-9]+)\/(\w+)\/(\w+)$ /info?age=$1&name=$2&email=$3 ;
break;

參考文章

相關推薦

Nginx路徑匹配引數修改-yellowcong

資源進行分離,jsp ,html,img的動靜分離,對於不同的字尾結尾的資料,匹配到不同的伺服器上。同時,路徑的匹配還可以用於做url的重寫,修改url的請求格式,將/age/name/email

分塊區間查詢區間修改

con names void cnblogs 枚舉 == code != esp 給出一個長為n的數列,以及n個操作,操作涉及區間加法,區間求和。 這題的詢問變成了區間上的詢問,不完整的塊還是暴力;而要想快速統計完整塊的答案,需要維護每個塊的元素和,先要預處理一下。

機器學習實踐(八)—sklearn交叉驗證引數調優

一、交叉驗證與引數調優 交叉驗證(cross validation) 交叉驗證:將拿到的訓練資料,分為訓練集、驗證集和測試集。 訓練集:訓練集+驗證集 測試集:測試集

Django 資料操作欄位引數

Field 點選這裡檢視Github,記得關注哦! 資料操作欄位與其引數 欄位 所有欄位型別: AutoField(Field) int 自增列,必須填入引數 primary_key=True BigAutoField(AutoField) bigint 自增

機器學習模型評估引數調優

一、流水線工作流        在利用訓練資料對模型進行擬合時已經得到一些引數,使用流水線可以避免在將模型用於新資料時重新設定這些引數。利用sklearn中的Pipline類,使得我們可以擬合出包含任意多個處理步驟的模型,並將模型用於新資料的預測。 1. # Title

正則表示式貪婪匹配非貪婪匹配

. :匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用像 '[.\n]' 的模式 * :匹配0個或多個 使用 .* 的話就可以匹配任意長度的任意字元,但是有時候在使用 .*時就可能匹配不到物品們想要的結果,例: import re

spring bootspring mvc常用配置--路徑匹配引數設定(7)

路徑匹配引數設定 在spring mvc中,路徑引數帶".","."後面的值將會忽略。 http://localhost:8080/index.xx實際訪問的路徑是http://localhost:8

Dapper系列三:Dapper的修改刪除

幫助 一個 。。 講解 復制 upd font 希望 update Dapepr的Update和Delete 上兩篇文章我們介紹Dapper中添加和查詢。本篇文章我們繼續講解修改和刪除。。。。。如果本篇文章看不懂,請看閱讀上兩篇Dapper系列相關文章Update

Nginx location 指令匹配規則

匹配查找 例如 其他 字符串類型 block 正則匹配 image 使用 files location 指令的匹配命令如下: ~,執行一個區分大小寫的正則匹配。 ~*,執行一個不區分大小寫的正則匹配。 ^~,普通字符匹配,通常用於匹配目錄。 =,普通字符精確匹配。 @,定

Silverlight & Blend動畫設計系列六:動畫技巧(Animation Techniques)對象路徑轉化、波感特效

繪制 name sof 圖形 基本 默認 nbsp getprop 都在 當我們在進行Silverlight & Blend進行動畫設計的過程中,可能需要設計出很多效果不一的圖形圖像出來作為動畫的基本組成元素。然而在設計過程中可能會出現許多的問題,比如當前繪制了一個

深入Nginx《HTTP請求報文HTTP響應報文》

分組 value align 後端服務 請求超時 odin cep 問題 ati HTTP請求報文 這個很有必要了解,好歹我們得知道Nginx在提供HTTP服務時,客戶端都會傳些什麽。HTTP請求中客戶端傳送的內容稱為HTTP請求報文。 1、請求行包含: 請

nginx線上CDN的rewrite規則修改

jpg 瀏覽器 這樣的 oot image con 轉譯 a-z 依次 線上的CDN廠商的nginx的rewrite規則配置驗證 驗證測試:為使nginx vhost虛擬主機配置文件更簡潔,所以采用include方式,把nginx的rewrite規則寫到一個單獨的配置文件中

Python學習筆記模式匹配正則表達式用正則表達式匹配更多模式

重復 實例 int clas span 就是 image 特定 mat 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線--------------------------

Nginx運維四 Http模組引數配置

Nginx運維之四 Http模組引數配置 案例 核心引數配置 client_body_buffer_size client_body_temp_path client_body_timeout client_header_b

Python學習筆記模式匹配正則表示式使用和不使用正則表示式

 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線-------------------------------------------   假設你希望在字串中查詢電話號碼。你知道模式:3個數字,一

Nginx解壓編譯安裝-yellowcong

安裝前準備 對於nginx編譯安裝需要先安裝編譯 的工具,然後再安裝nginx依賴 yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl openssl-devel pcre pcr

[Visual Studio C++] [MFC 除錯錯誤]:str.Format()不存在引數列表匹配的過載函式

1.編譯問題描述: str.Format(“%d”,m_number)不存在與引數列表匹配的過載函式,紅色波浪線出現在“ . ”下方 2.錯誤程式碼:                    

Gitlab+Gerrit+Ldap+nginx+mysql Gerrit搭建配置(一)

公司之前一直用gitlab來存放專案程式碼 ,目前因為業務需要(程式碼bug太多)需要引入gerrit來進行code review。 最初用的是centos 7.4,但是安裝完成後,GerritResource中沒有ALL_Project.git和All_Users.git生成,日誌中一直在報錯,反覆裝了幾

c++ primer plus書--c++函式, 陣列引數指標的關係2

陣列怎麼在函式的引數中進行傳遞: // simple function #include "iostream" using namespace std; const int Size = 8; // 函式原型, 可以不寫變數名, 變數名也可以與函式定義的變數名不同 int sum_arr(in

C++ premier plus書--C++函式, 陣列引數指標的關係1

C++的實參和形參 double cube(double x); int main()  {     int a = 5;     cube(a); } 這裡a被稱為實參, x被稱為形參, 形參就是用於接收傳遞值的變數,