Nginx可用参数
Nginx 变量参数详解:从基础使用到条件判断
Nginx 提供了丰富的内置变量(参数),可用于获取请求信息、服务器状态等数据,结合条件判断(if语句)能实现灵活的请求处理逻辑。本文系统梳理 Nginx 常用变量的含义、使用场景及条件判断语法,帮助开发者高效配置 Nginx。
核心内置变量:获取请求与服务器信息
Nginx 的内置变量以$开头,可在配置文件中直接引用,用于动态获取请求参数、客户端信息、服务器状态等。以下是最常用的变量分类及说明:
请求参数与 URI 相关变量
| 变量 | 含义 | 示例 |
|---|---|---|
$arg_NAME |
获取 HTTP 请求中指定参数的值(NAME 为参数名) | 请求/index.html?name=zhangsan中,$arg_name的值为zhangsan |
$args |
请求 URI 中的完整参数(与$query_string相同) |
请求/list?id=1&page=2中,值为id=1&page=2 |
$uri / $document_uri |
当前请求的 URI(不带参数,可能被内部重定向修改) | 请求/article/123?lang=cn中,值为/article/123 |
$request_uri |
客户端原始请求的完整 URI(带参数,永不改变) | 请求/article/123?lang=cn中,值为/article/123?lang=cn |
$is_args |
若请求带参数则为?,否则为空字符串 |
带参数时为?,无参数时为空 |
客户端与连接信息变量
| 变量 | 含义 | 示例 |
|---|---|---|
$remote_addr |
客户端 IP 地址 | 如192.168.1.100 |
$remote_port |
客户端连接使用的端口 | 如54321 |
$binary_remote_addr |
二进制格式的客户端 IP(节省内存) | 如\x0A\xE0B\x0E(对应10.224.66.14) |
$http_HEADER |
获取客户端请求头中指定字段的值(HEADER 为小写) | $http_user_agent获取浏览器标识,$http_referer获取来源页 |