map $http_user_agent $agent {default "";~curl curl;~*apachebench" ab;
}
正则表达式里可以包含命名捕获和位置捕获,这些变量可以跟结果变量一起被其它指令使用。
map $uri $value {/ttlsa_com /index.php;~^/ttlsa_com/(?.*)$ /boy/;~/fz(/.*) /index.php?;
}
注意:
map $http_referer $value {Mozilla 111;~Mozilla 222;
}
结果变量可以是一个字符串也可以是另外一个变量。
map $num $limit {1 $binary_remote_addr;0 "";
}
map指令有三个参数:
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 $http_user_agent $mobile {default 0;"~Opera Mini" 1;
}
如果匹配到多个特定的变量,如掩码和正则同时匹配,那么会按照下面的顺序进行选择:
http {map $args $foo {default 0;debug 1;}server {listen 8087;server_name localhost;location /test {set $orig_foo $foo;set $args debug;echo "orginal foo: $orig_foo";echo "foo: $foo";}}
}
curl -v 'http://localhost:8087/test'
实例二
http {map $http_user_agent $agent {~curl curl;~*chrome chrome;}server {listen 8085;server_name localhost;location /hello {default_type text/plain;echo http_user_agent: $http_user_agent;echo agent: $agent;}}
}
curl -v 127.0.0.1:8085/hello
curl -v 127.0.0.1:8085/hello --user-agent Chrome
实例三
http {map $uri $match {~^/hello/(.*) http://www.ttlsa.com/;}server {listen 8086;server_name localhost;location /hello {default_type text/plain;echo uri: $uri;echo match: $match;echo capture: $1;echo new: $match$1;}}
}
curl -v http://127.0.0.1:8086/hello/aaa/bbb
[3].http://nginx.org/en/docs/http/ngx_http_map_module.html
文章目录1. Map的声明2. Map 元素访问带来的问题3. Map 元素的遍历4. 通过Map 实现 函数对象(C++)5. 通过Map实现一个简单Set功能...
多线程编程 mind-Mapping保存有一下导图的xmind文件,可直接获取 互斥变量 互斥对象 ptrhead相关接口 条件变量 future异步访问类 async类 promise类 package_task类...
我们在实际开发的过程中,可能需要某些类的成员变量并不是针对每一个对象的,而是针对每一个类而言的,比如在银行中有一个利率数据,我们希望的是,当一个利率改变的时候,所有的对象都能够看到这个改变的数据,并利用它,而不是每一个对象都有一个利率成员变量。这个时候就设计到了静态成员变量。 一. 内存那些事 静态成员变量是存放在静态...
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触...
引子 阅读以下代码,并尝试分析 代码解析 在主线程中,线程Id为1,为线程变量赋值 变量==d6ff开启一个新的task,此时线程Id为4,变量==d6ff,并调用Task1开启一个同步Task3,线程Id为1。变量==d6ff,修改值==f598此时第二步启动的Task1运行,线程Id为4,变量==d6ff,修改值=...
操作系统基础 操作系统是协调、控制、管理计算机硬件资源与软件资源的控制程序 为什么要用操作系统? 1.操作系统可以把复杂的操作简化给用户使用或者应用程序 2.可以让应用程序对计算机硬件竞争变的有序 一套完整的计算机分为:操作系统、应用程序、计算机硬件 编程语言的分类 机械语言:使用二进制让计算机工作 优点:运行...
ng g s services/http app.module.ts ... @NgModule({declarations: [...],imports: [...HttpClientModule,//这个很重紧要,没有就会报错],providers: [],bootstrap: [AppComponent] }) expor...
set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等等。在后面的应用中,都将会接触使用到这个模块的。该模块是由章亦春先生开发的,他开发的其他模块应用...
该源码包是MySQL-python-1.2.4b4.tar.gz 从2013-06-28以来一直没有更新,注意该网站可以区分访问的终端类型是Windows还是Linux之类的,从而返回的源码包格式不一样。 在CentOS上的安装方法是 http://www.cnblogs.com/jackluo/p/3559978.html...
ATS默认提供了对Referer头的http request的防盗链功能,主要应用于图片,对视频等会使用级别更高的防盗链功能,比如事先约定好key,采用md5或HMAC-Sha1算法加密等。 在remap.config中按如下格式设置: map_with_referer client-URL origin-server-URL re...
测试大文件下载 curl -I "http://resource.tsk.erya100.com/TS/flv/TS180/5836/9.flv?t=1430796561727" 单条转发模式in per remap mode 在remap.config中添加一条 map http://resource.tsk.e...