百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Nginx配置可用参数

off999 2025-01-03 18:13 10 浏览 0 评论

Nginx可用参数

参数名称

注释

$arg_NAME

HTTP 请求中某个参数的值,如/index.html?name=zhangsan,可以用$arg_name 取得zhangsan

$args

HTTP 请求中的完整参数。例如,在请求/index.html?id=1&name=zhangsan 中,$args 表示字符串 id=1&name=zhangsan.

$binary_remote_addr

二进制格式的客户端地址。例如:\x0A\xE0B\x0E

$body_bytes_sent

表示在向客户端发送的 http 响应中,包体部分的字节数

$content_length

表示客户端请求头部中的 Content-Length 字段

$content_type

表示客户端请求头部中的 Content-Type 字段

$cookie_NAME

表示在客户端请求头部中的 cookie 字段,获取指定cookie

$document_root

表示当前请求所使用的 root 配置项的值

$uri

表示当前请求的 URI,不带任何参数

$document_uri

与$uri 含义相同

$request_uri

表示客户端发来的原始请求 URI,带完整的参数。$uri 和$document_uri 未必是用户的原始请求,在内部重定向后可能是重定向后的 URI,而$request_uri 永远不会改变,始终是客户端的原始 URI.

$host

表示客户端请求头部中的 Host 字段。如果 Host 字段不存在,则以实际处理的 server(虚拟主机)名称代替。如果 Host 字段中带有端口,如 IP:PORT,那么$host 是去掉端口的,它的值为 IP。$host 是全小写的。这些特性与 http_HEADER 中的 http_host 不同,http_host 只取出 Host 头部对应的值。

$hostname

表示 Nginx 所在机器的名称,与 gethostbyname 调用返回的值相同

$http_HEADER

表示当前 HTTP 请求中相应头部的值。HEADER 名称全小写。例如,示请求中 Host 头部对应的值

$sent_http_HEADER

表示返回客户端的 HTTP 响应中相应头部的值。HEADER 名称全小写。例如,用 $sent_http_content_type 表示响应中 Content-Type 头部对应的值

$is_args

表示请求中的 URI 是否带参数,如果带参数,$is_args 值为 ?,如果不带参数,则是空字符串

$limit_rate

表示当前连接的限速是多少,0 表示无限速

$nginx_version

表示当前 Nginx 的版本号

$query_string

请求 URI 中的参数,与 $args 相同,然而 $query_string 是只读的不会改变

$remote_addr

表示客户端的地址

$remote_port

表示客户端连接使用的端口

$remote_user

表示使用 Auth Basic Module 时定义的用户名

$request_filename

表示用户请求中的 URI 经过 root 或 alias 转换后的文件路径

$request_body

表示 HTTP 请求中的包体,该参数只在 proxy_pass 或 fastcgi_pass 中有意义

$request_body_file

表示 HTTP 请求中的包体存储的临时文件名

$request_completion

当请求已经全部完成时,其值为 “ok”。若没有完成,就要返回客户端,则其值为空字符串;或者在断点续传等情况下使用 HTTP range 访问的并不是文件的最后一块,那么其值也是空字符串。

$request_method

表示 HTTP 请求的方法名,如 GET、PUT、POST 等

$scheme

表示 HTTP scheme,如在请求 https://nginx.com/中表示 https

$server_addr

表示服务器地址

$server_name

表示服务器名称

$server_port

表示服务器端口

$server_protocol

表示服务器向客户端发送响应的协议,如 HTTP/1.1 或 HTTP/1.0


使用参数来进行条件判断

if(codition) {…}

可以在server、location块使用

示例

if($request_method = POST){
    return 405;
}

比较符:

  • 使用=、!=比较变量和字符串
  • 使用~、~*与正则表达式匹配的变量,如果正则中存在}或者;,则必须给整个正则加上引号
  • 使用-f、!-f 检查文件是否存在
  • 使用-d、!-d检查一个目录是否存在
  • 使用-e、!-e检查一个文件、目录、符号链接是否存在
  • 使用-x、!-x检查一个文件是否可执行

相关推荐

独家 | 5 个Python高级特性让你在不知不觉中成为Python高手

你已经使用Python编程了一段时间,编写脚本并解决各种问题。是你的水平出色吗?你可能只是在不知不觉中利用了Python的高级特性。从闭包(closure)到上下文管理器(contextmana...

Python装饰器

Python装饰器是一种用于修改函数或类的行为的特殊语法。它们允许在不修改原始代码的情况下,通过将函数或类作为参数传递给另一个函数来添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返...

中高阶Python常规用法--上下文管理器

Python以简单性和通用性著称,是一种深受全球开发人员喜爱的编程语言。它提供了大量的特性和功能,使编码成为一种愉快的体验。在这些功能中,一个经常被新手忽视的强大工具是上下文管理器。上下文管理器是高...

Python小案例67- 装饰器

Python装饰器是一种用于修改函数或类的行为的特殊语法。它们允许在不修改原始代码的情况下,通过将函数或类作为参数传递给另一个函数来添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返...

python常用的语法糖

概念Python的语法糖(SyntacticSugar)是指那些让代码更简洁、更易读的语法特性,它们本质上并不会增加新功能,但能让开发者更高效地编写代码。推导式写法推导式是Python最经典的...

python - 常用的装饰器 decorator 有哪些?

python编程中使用装饰器(decorator)工具,可以使代码更简洁清晰,提高代码的重用性,还可以为代码维护提供方便。对于python初学者来说,根据装饰器(decorator)的字面意思并不...

python数据缓存怎么搞 ?推荐一个三方包供你参考,非常简单好用。

1.数据缓存说明数据缓存可以说也是项目开发中比不可少的一个工具,像我们测试的系统中,你都会见到像Redis一样的数据缓存库。使用缓存数据库的好处不言而喻,那就是效率高,简单数据直接放在缓存中...

用于时间序列数据的Graphite监视工具

结合第三方工具,Graphite为IT性能监控提供了许多好处。本文介绍其核心组件,包括Carbon、Whisper以及安装的基本准则。Graphite监视工具可实时或按需,大规模地绘制来自多个来源的时...

Python3+pygame实现的坦克大战

一、显示效果二、代码1.说明几乎所有pygame游戏,基本都遵循一定的开发流程,大体如下:初始化pygame创建窗口while循环检测以及处理事件(鼠标点击、按键等)更新UI界面2.代码创建一个m...

Python之鸭子类型:一次搞懂with与上下文装饰器

引言在鸭子类型的理念的基础之上,从关注类型,转变到关注特性和行为。结合Python中的魔法函数的体系,我们可以将自定义的类型,像内置类型一样被使用。今天这篇文章中,接着该话题,继续聊一下with语法块...

Python必会的50个代码操作

学习Python时,掌握一些常用的程序操作非常重要。以下是50个Python必会的程序操作,主要包括基础语法、数据结构、函数和文件操作等。1.HelloWorldprint("Hello,...

一文掌握Python 中的同步和异步

同步代码(Sync)同步就像在一个流水线上工作,每个任务都等待前一个任务完成。示例:机器A切割钢板→完成后,机器B钻孔→完成后,机器C上色。在Python中,同步代码看起来像这样:im...

python 标注模块timeit: 测试函数的运行时间

在Python中,可以使用内置的timeit模块来测试函数的运行时间。timeit模块提供了一个简单的接口来测量小段代码的执行时间。以下是使用timeit测试函数运行时间的一般步骤:导入...

Python带你找回童年的万花尺

还记得小时候的万花尺吧?这么画:一点也不费脑筋,就可以出来这么多丰富多彩的复杂几何图形。具体而言,可以用万花尺玩具(如图2-1所示)来绘制数学曲线。这种玩具由两个不同尺寸的塑料齿轮组成,一大一小。小的...

Python 时间模块深度解析:从基础到高级的全面指南

直接上干货一、时间模块核心类介绍序号类名说明1datetime.datetime表示一个具体的日期和时间,结合了日期和时间的信息。2datetime.date表示一个具体的日期。3datetime.t...

取消回复欢迎 发表评论: