程序员Nginx高端成长之路PHP经验分享

【充电】《Nginx核心知识100讲》HTTP框架提供的其他变量

2019-01-14  本文已影响5人  言十年

极客专栏《Nginx核心知识100讲》74小节,笔记
注意:这个是看专栏视频,敲的哈。这个专栏让我收货蛮大的。

74 | HTTP框架提供的其他变量

nginx除了提供与请求相关的变量以外,还提供了与TCP连接相关的变量、处理请求过程中对响应相关的变量、以nginx的系统变量

TCP 连接相关的变量

TCP是一个四元组,所以可以拿到这个四元组相关的对端或本端的信息。

binary_remote_addr、remote_addr、remote_port都是对端的信息。连接对端的信息,binary_remote_addr以二进制整型格式存储。客户端地址以字符串形式。用binary_remote_addr作为key,比如limit_req、limit_connect 效率会非常的更高,如果打印到log中,remote_addr可读性更好些。

connection 是递增的链接序号。

proxy_protocol_addr :proxy_protocol到底是什么样的协议呢?其实是为了解决real ip协议,因为使用了反向代理。真正的用户和我之间其实建立了多个tcp链接了。多个tcp链接通过对端地址已经取不到真实地址了。http协议可以通过real ip、forward-for这样的头部来取,如果是其他协议没有这样的头部解决方案。proxy_protocol 是用来解决这个问题的,它在tcp层新增了协议头保存原始用户的头部。在第四部分会做详细介绍。

TCP_INFO:包含内核中的很多参数,取到内核中的信息。第四部分中会介绍一些tcp层的概念,第五部分中,优化性能的时候,去考虑发送窗口等等,会介绍关于tcp层这些变量的一些意义和概念。

Nginx处理请求中产生的变量

image.png

request_id 通过四次random 完成的,能达到一个很好的随机效果。

image.png

发送 HTTP响应的相关变量

image.png

NGINX 系统变量

image.png

留言问题

内置的变量很丰富 学习了 可以记录一些我们想要的数据到 log里面或者是 response 里面

上一篇下一篇

猜你喜欢

热点阅读