网站首页 > 精选教程 正文
一、预定义变量
由于在不同模块下存在相同名称的变量,我们只列出一些与http相关的变量。
$host “Host”请求header字段中的主机名
$pid worker进程的PID
$remote_addr 客户端的IP地址
$request 完整的原始请求行
$scheme 当前请求的协议,http或者https
$status 响应状态
$uri 请求中的当前URI
更多预定义变量可访问https://nginx.org/网站查看。
二、自定义变量
- set指令
为指定的变量设置一个值。该值可以包含文本、变量及其组合。
适用server, location, if上下文
示例:
set $flag ---;
示例配置解析:
设置$flag变量的值为---。
- map指令
创建一个新变量,其值取决于第一个参数中指定的一个或多个源变量的值。
适用http上下文
示例:
map $http_host $name {
hostnames;
default 0;
example.com 1;
*.example.com 1;
example.org 2;
*.example.org 2;
.example.net 3;
wap.* 4;
}
示例配置解析:
$http_host为系统预定义变量,变量值为用户访问的域名。
如果$http_host变量值与任何指定的值都不匹配,$name变量设置为0。如果未设置default参数,$name变量值为空字符串。
如果$http_host变量值为example.com或者*.example.com,$name变量赋值为1。
如果$http_host变量值为example.org或者*.example.org,$name变量赋值为2。
如果$http_host变量值为example.net,$name变量赋值为3。
如果$http_host变量值为wap.*,$name变量赋值为4。
- if指令(再顺带讲一下if指令,if指令经常会和set指令配合使用。)
将评估指定的条件。如果为 true,则执行大括号内指定的此模块指令。
适用server、location上下文
示例
if ($http_cookie ~* "id=(\S+) {
set $id $1;
}
示例配置解析:
正则表达式匹配$http_cookie中id的值。接着赋值给$id变量。
注意事项:在使用指令时要注意指令适用的上下文。
猜你喜欢
- 2024-10-13 让Nginx支持PATH_INFO nginx path
- 2024-10-13 轻松记住各种 正则表达式 正则表达式入门经典
- 2024-10-13 Nginx的rewrite之rewrite指令 nginx rewrite $1
- 2024-10-13 一起搞定正则表达式1-初步认识!#学浪计划#
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)