nginx自定义变量与内置预定义变量的使用

nginx自定义变量与内置预定义变量的使用,第1张

nginx自定义变量与内置预定义变量的使用

本文详细介绍了nginx自定义变量和内置预定义变量的应用。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

一览

Nginx可以使用变量来简化装备和升级装备之间的协调能力,所有变量值都可以按照这个方法引入:

$变量名

nginx中的变量分为两种:自定义变量和内置预定义变量

内置变量

声明

能够应用set指令(非唯一的)来声明sever、http、location等标签中的变量。英语语法如下

set$变量名变量值

注意nginx中的变量必须都以$
开头

因此可见性

NGX的环境变量中所有应用的变量都必须声明,否则nginx将无法启动并打印异常日志

nginx变量的一个有趣的特点是nginx中的变量没有一个是全局的,这说明它们不是全局变量。例如,下面的例子

locationa/{ return200$a } locationb/{ set$ahellonginx return200$a }

由于变量是全局可见的,nginx启动时不容易出错,而且$a的实际值在第一个位置不知道,所以返回的响应结果是一个空字符串。

不同级别标签中声明的可变性可见性标准如下:

  • 这个位置块可以从位置标签中声明的变量中看到。
  • 服务器标记中声明的变量对服务器块及其所有子块都是可见的。
  • http标记中声明的变量对http块及其所有子块都是可见的。
  • 内置预定义变量

    内置预定义变量是无需声明即可应用的变量。通常,它们包含http请求或响应的一部分的值。以下是一些常见的内置预定义变量

    变量名 定义 $arg_PARAMETER GET请求中变量名参数的主参数值。 变量$args 相当于GET要求中的主参数。比如foo=123&bar=blahblah此变量只能被更改 $binary_remote_addr 手机客户端在二进制代码模式下的详细地址。 $body_bytes_sent 传输网页的字节数 $content_length 请求标头中内容长度字段的名称。 $content_type 请求标头中内容类型字段的名称。 $cookie_cookie cookiecookiecookie的值。 $document_root 今天需要root命令中的特定值。 $document_uri 与$uri相同。 如果请求中的服务器头不能使用或空,则$Host 请求中的服务器头的字段名称是解析请求的服务器的名称(解析请求的服务器的server_name命令的值)。数字小写字母,不包括端口号。 $hostname 的设备名是gethostname系统进程 的值$HTTP_HEADER HTTP请求头中的内容。头是HTTP请求中的内容,变成小写,-变成_(破折号变成下面的横线),比如:$HTTP_user_agent(uaer-agent的值); $sent_HTTP_HEADER HTTP响应头中的内容。Header是指HTTP响应中的内容变成小写字母,-变成_(破折号变成下面的横线),比如:$sent_http_cache_control,$sent_HTTP_content_type……; $is_args 如果设置了$args,则值“?”,否则就是""。 变量$limit_rate 可以限制连接速度。 $nginx_version nginx今天在运营的版本信息。 $query_string 与$args相同。 $remote_addr 移动客户端的IP地址。 $remote_port 移动客户端的端口号。 $remote_user 已由AuthBasic模块验证的登录名。 $request_filename 今天加入所需的文件路径,由root或alias命令和URI要求组成。 变量$request_body (0.7.58)包括所需的关键信息内容。它在应用proxy_pass或fastcgi_pass命令的位置更有意义。 $request_body_file 移动客户端请求主题信息的临时文件夹的名称。 $request_completion 如果请求成功,设置为“OK”;如果需求没有完成或者不是一系列需求的最后一部分,则设置为空。 变量$request_method 是手机客户端需要的手势,一般是GET或者POST。在0.8.20和更早的版本号中,该变量始终是主请求中的状态。如果当前需求是一个子需求,那么当前需求的状态就不会被应用。 变量$request_URI 相当于包含手机客户端需要的一些主要参数的初始URI。这是无法改变的。请查询$uri以更改或调用uri。 $scheme 常用协议,比如http或者https,比如rewrite(。)$$scheme://example.comredirect; $server_addr 服务器ip,可以在系统进程之后指定。如果要避开系统进程,必须在listen中指定详细地址,并应用bind的主参数。 $server_name 服务器名称。 $server_port 需要到达网络服务器的服务器端口。 $server_protocol 要求的协议一般是HTTP/1.0或者HTTP/1.1。 $uri 请求中的当前URI(不需要主参数,主参数位于args中),不同于电脑浏览器传输的args,也不同于浏览器传输的request_uri的值。它可以根据内部跳转或通过应用索引命令来改变。不包括协议和IP地址,例如/foo/bar.html

    到目前为止,本文已经详细介绍了nginx自定义变量和内置预定义变量的应用。有关nginx自定义变量和内置预定义变量的大量内容,请搜索您以前的文章或再次访问下面的相关文章。期待你以后更多的应用!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774447.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存