网站首页 > 技术教程 正文
一、预定义变量
由于在不同模块下存在相同名称的变量,我们只列出一些与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-10 「每天一道面试题」Nginx有哪些特点
- 2024-09-14 教你真正理解 if name 的作用(if name?)
- 2024-09-14 Nginx常用配置(nginx配置都有哪些模块)
- 2024-09-14 nginxWebUI-Web方式完成nginx配置
- 2024-09-14 Keepalived+Nginx高可用集群配置测试
- 2024-09-14 Nginx总结(反向代理、负载均衡、动静分离)篇
- 2024-09-14 周六福利!分享一本nginx宝典:Nginx教程从入门到精通
- 2024-09-14 使用Nginx配置文件屏蔽指定请求(nginx配置限制ip访问)
- 2024-09-14 Nginx重写规则(2)(nginx 重写)
- 2024-09-14 Ubuntu+Nginx+uwsgi部署django项目
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)