女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

map指令簡單介紹

馬哥Linux運維 ? 來源:博客園白--茶 ? 2025-02-13 09:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

map指令簡單介紹

當然這里寫的都是官方文檔是已經(jīng)寫過的,我簡單抄一下哈。

map指令來自于ngx_http_map_module模塊,提供的核心能力是 基于一個變量創(chuàng)建一個新變量,大概是這意思。

語法: 只能配置在http塊內(nèi)
map string $variable {...}

直接看這個語法好像看不出來它能干什么,所以官方文檔上給了幾個例子:

map $http_host $name {
    hostnames;

    default       0;

    example.com   1;
    *.example.com 1;
    example.org   2;
    *.example.org 2;
    .example.net  3;
    wap.*         4;
}

解析一下上面這個例子的意思:

map: 關(guān)鍵字,開辟一段內(nèi)存空間聲明一個map

$http_host: 獲取host請求頭:eg: www.baidu.com

$name: 新變量,具體取值是什么取決于結(jié)構(gòu)體內(nèi)的映射關(guān)系

結(jié)構(gòu)體內(nèi)的數(shù)據(jù)解析:
    hostnames:
    - 官方文檔給出的解釋是:允許用前綴或者后綴掩碼指定域名作為源變量值。這個參數(shù)必須寫在值映射列表的最前面。

    讀都能讀的懂,字也都認識,但是怎么感覺好像還是不太懂呢,又沒有同感?于是我測試了一下,其實就是你想用下面那種泛域名來匹配host的話就加一下這個參數(shù), 否則是達不到預(yù)期效果的。

    default 0; :匹配不到符合條件的數(shù)據(jù)時 則$name 這個變量就取默認值 0

知道了這之后我能用它來做什么呢?看實際應(yīng)用的例子

map指令的實踐使用

1. 基于cookie做多環(huán)境分流

一般中大型公司都會有多套測試環(huán)境,對于多環(huán)境的訪問可能最容易想到的就是對應(yīng)多個域名,這方法當然可以,但是不優(yōu)雅,維護多個域名太累。為了偷懶,我們用了一個域名,使用不同的cookie來轉(zhuǎn)發(fā)相應(yīng)的流量到相應(yīng)的環(huán)境。

如何實現(xiàn)?

    map $cookie_cl_env_num $cl_backend_map {
        default   1.1.1.1:80;
        dev-01    upstream_dev-01;
        dev-02    upstream_dev-02;
        dev-03    upstream_dev-03;
        test-01   upstream_test-01;
        test-02   upstream_test-02;
        test-03   upstream_test-03;
        test-04   upstream_test-04;
        test-05   upstream_test-05;
        test-06   upstream_test-06;
        test-07   upstream_test-07;
        test-08   upstream_test-08;
        test-09   upstream_test-09;
        test-10   upstream_test-10;
        test-11   upstream_test-11;
        test-12   upstream_test-12;
        test-13   upstream_test-13;
        test-14   upstream_test-14;
        test-15   upstream_test-15;
    }

    # 隨便寫一個
    upstream upstream_test-14 {
        server 2.2.2.2:80;
    }

    # 局部實現(xiàn)寫一下
    location / {
        pass_pass http://$cl_backend_map;
    }

    # 請求
    curl --cookie "cl_env_num=test-15" a.test.com/api/v1/hahaha

這不就實現(xiàn)了嘛,很方便哈。僅提供思路!當然也可以使用其他變量來分流 UA|args ...

2. 做安全的多域名跨域訪問

跨域訪問一般情況下我們都會直接設(shè)置 * 允許所有跨域訪問。但是難免會有一些對安全性要求較高的業(yè)務(wù)不允許這樣,那么對于域名比較多的安全跨域配置,也可以使用map來實現(xiàn)。

map $http_origin $allow_origin {
    ~http://www.baidu.com http://www.baidu.com;
    ~http://m.baidu.com   http://m.baidu.com;
    ~http://a.baidu.com   http://a.baidu.com;
    default               deny;
}

server {
    listen 80;
    server_name www.baidu.com;

    location / {
        ...
        add_header Access-Control-Allow-Origin $allow_origin;
        ...
    }
}

僅提供思路哈,具體情況可以再優(yōu)化

總結(jié)

當然還有很多場景都可以用到, 無法一一列舉, 自己能夠根據(jù)需求和場景靈活運用是最好的。

鏈接:https://www.cnblogs.com/chaizhenhua/p/16247460.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2788

    瀏覽量

    50342
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    616

    瀏覽量

    36441

原文標題:Nginx的map指令還能這樣用

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    簡單介紹ARM的指令

    寄存器內(nèi)容進行操作,而不是直接對內(nèi)存內(nèi)容。簡單尋址模式,所有l(wèi)oad/store地址由寄存器內(nèi)容和指令確定。該體系結(jié)構(gòu)定義了處理單元與內(nèi)存(包括緩存)的交互,并包括內(nèi)存地址翻譯系統(tǒng)。它還描述了多個處理
    發(fā)表于 08-18 10:58

    介紹編譯器生成的map和htm文件

    第10章 STM32H7的FLASH,RAM和棧使用情況(map和htm文件)本章為大家介紹編譯器生成的map和htm文件進行解析,通過這兩個文件可以讓大家對工程代碼的認識程度提升一個檔次。目錄第10章 STM32H7...
    發(fā)表于 08-03 07:52

    總線的簡單介紹

    一、總線的簡單介紹: 處理器無疑是計算機中最重要的部件,但并不是唯一的部件。一臺計算機也需要隨機訪問存儲器(RAM)來存放機器碼指令以便讓處理器執(zhí)行。計算機還必須有一些方法使這些指令
    發(fā)表于 08-05 07:25

    介紹一些MOV與ADD指令簡單例子

    因為嵌入式系統(tǒng)學(xué)習需要,開始學(xué)習匯編語言學(xué)習資料是B站的視頻:匯編語言程序 P9目錄一、一些簡單指令例子二、一個練習一、一些簡單指令例子下圖是一些
    發(fā)表于 01-07 06:39

    制作一個簡單的AT指令

    制作一個簡單的AT指令解析最近在開發(fā)nrf51822工作上需要搭建一個簡單的AT指令庫,突然靈機一動想到了這個樣一個簡單的AT解析函數(shù),雖然
    發(fā)表于 01-21 10:08

    基于MAP的嵌入式MP3播放器設(shè)計與實現(xiàn)

    基于MAP的嵌入式MP3播放器設(shè)計與實現(xiàn):多媒體應(yīng)用處理器簡稱MAP,是一種適用于便攜式數(shù)字音視頻設(shè)備的新型嵌入式應(yīng)用處理器。文中介紹MAP 的主要性能特點,給出了基于
    發(fā)表于 08-02 14:50 ?38次下載

    Map Service Engine Based On We

    Abstract:A design and implementation of map service engine based on web is introduced
    發(fā)表于 07-23 10:43 ?17次下載

    MC8051_IP核簡單指令的仿真步驟

    MC8051_IP核簡單指令的仿真步驟。
    發(fā)表于 05-06 11:47 ?0次下載

    mapreduce 中MAP進程的數(shù)量怎么控制?

    1.如果想增加map個數(shù),則設(shè)置mapred.map.tasks 為一個較大的值2.如果想減小map個數(shù),則設(shè)置mapred.min.split.size 為一個較大的值3.如果輸入中有很多小文件,依然想減少
    發(fā)表于 01-02 14:04 ?2024次閱讀
    mapreduce 中<b class='flag-5'>MAP</b>進程的數(shù)量怎么控制?

    mapreduce設(shè)置map個數(shù)_mapreduce設(shè)置map內(nèi)存

    map階段讀取數(shù)據(jù)前,F(xiàn)ileInputFormat會將輸入文件分割成split,split的個數(shù)決定了map的個數(shù)。
    發(fā)表于 01-02 14:26 ?1.2w次閱讀
    mapreduce設(shè)置<b class='flag-5'>map</b>個數(shù)_mapreduce設(shè)置<b class='flag-5'>map</b>內(nèi)存

    Java Map的幾種循環(huán)方式學(xué)習總結(jié)

    本文檔內(nèi)容介紹了基于Java Map的幾種循環(huán)方式學(xué)習總結(jié),供參考
    發(fā)表于 03-19 15:51 ?0次下載

    ESP8266和單片機最簡單的AT指令的使用程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是ESP8266和單片機最簡單的AT指令的使用程序免費下載。
    發(fā)表于 08-02 17:34 ?11次下載
    ESP8266和單片機最<b class='flag-5'>簡單</b>的AT<b class='flag-5'>指令</b>的使用程序免費下載

    基于區(qū)塊鏈技術(shù)的去中心化地理空間信息共識平臺MAP介紹

    MAP接收用戶對空間映射數(shù)據(jù)和基于位置的元數(shù)據(jù)的貢獻并為其確定優(yōu)先級。 EOS.IO軟件為MAP提供諸如具有高魯棒性的共識機制,快速的交易速度和高效的資源利用機制。
    發(fā)表于 08-29 14:34 ?2306次閱讀

    什么是 map

    map 容器,又稱鍵值對容器,即該容器的底層是以紅黑樹變體實現(xiàn)的,是典型的關(guān)聯(lián)式容器。這意味著,map 容器中的元素可以分散存儲在內(nèi)存空間里,而不是必須存儲在一整塊連續(xù)的內(nèi)存空間中。跟任意其它類型容器一樣,它能夠存放各種類型的對象。
    的頭像 發(fā)表于 02-27 15:41 ?3690次閱讀

    ARM系列-WFI和WFE指令介紹

    今天來看兩個特殊的指令,WFI(Wait For Interrupt)和WFE(Wait For Event)。這兩條指令的語法非常簡單,不需要帶任何參數(shù)。
    發(fā)表于 05-29 17:47 ?5344次閱讀