nginx如何处理TCP/UDP session
来源:互联网 发布:mac将文件夹移动硬盘 编辑:程序博客网 时间:2024/06/06 01:55
nginx会在几个连续的步骤中处理来自client客户端的TCP/UDP session,这些步骤也叫阶段。
1 Post-accept 阶段
这是接收客户端连接后的第一个阶段。在这个阶段 ngx_stream_realip_module插件会被调用。ngx_stream_realip_module插件是用来转换client端地址(address)和端口(port)为PROXY协议header中发送的某一个。
指令:
Syntax: set_real_ip_from address | CIDR | unix:;Default: —Context: stream, server#
2 Pre-access阶段
针对访问的初步检查。在这个阶段 ngx_stream_limit_conn_module插件会被调用。ngx_stream_limit_conn_module插件用来限制定义的每个key的连接数量,实际上这个连接数量是来自单个IP地址的连接数量。
指令:
Syntax: limit_conn zone number;Default: —Context: stream, server#
3 Access阶段
实际数据处理之前client客户端的限制。在这个阶段 ngx_stream_access_module插件会被调用。ngx_stream_access_module插件可以用来限制某些客户端地址的访问。
指令:
Syntax: allow address | CIDR | unix: | all;Default: —Context: stream, serverSyntax: deny address | CIDR | unix: | all;Default: —Context: stream, server
4 SSL阶段
TLS/SSL 处理。在这个阶段 ngx_stream_ssl_module插件会被调用。ngx_stream_ssl_module 提供对使用TLS/SSL协议的stream代理server的必要支持。
5 Preread 阶段
读取数据的初始字节到preread buffer中,在数据被处理之前,允许 ngx_stream_ssl_preread_module等插件分析数据。ngx_stream_ssl_preread_module插件允许在还没有终结SSL/TLS时从ClientHello message中提取信息。比如通过SNI请求的server名称。
指令:
Syntax: ssl_preread on | off;Default: ssl_preread off;Context: stream, server
6 Content阶段
数据实际处理的委托阶段,通常被代理到upstream server,或者一个指定的值会被返回到客户端。
Log阶段
最后一个阶段,client session处理的结果会被记录。在这个阶段 ngx_stream_log_module 插件会被调用。ngx_stream_log_module 插件使用指定的格式来写session日志。
指令:
Syntax: access_log path format [buffer=size] [gzip[=level]] [flush=time] [if=condition];access_log off;Default: access_log off;Context: stream, server
- nginx如何处理TCP/UDP session
- Nginx TCP/UDP 代理
- nginx.org的How nginx processes a TCP/UDP session页面翻译
- TCP/UDP select超时处理
- TCP UDP 包处理方式
- Netty 处理Tcp Http Udp
- nginx负载均衡处理session
- Nginx--官网中文翻译(中英文对比)--13-nginx如何处理会话How nginx processes a TCPUDP session
- NAT对udp Session处理机制
- java中处理TCP 与UDP
- Nginx 如何处理请求
- 如何计算UDP/TCP检验和checksum
- TCP或者UDP,该如何选择?
- 如何实现TCP和UDP传输
- Android如何实现TCP和UDP传输
- 如何计算UDP/TCP检验和checksum
- tcp、UDP如何实现可靠传输
- [TCP/IP] TCP与UDP不同的包处理方式
- JavaScript常用API合集
- C++第三次实验:税收计算
- 全新的 flow.ci Dashboard UI 上线
- C++之string
- 支付宝报错
- nginx如何处理TCP/UDP session
- Android 优雅地退出App
- C/C++中生成随机序列——随机函数的选择和自我实现
- SQLite Xerial Driver
- POJ
- C++作业3
- LintCode 排序列表转换为二分查找树
- C++实验3:多分段函数求值
- React-Native 奇葩报错