nginx stream模块
前言
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。这完全就是抢HAproxy份额的节奏,鉴于nginx在7层负载均衡和web service上的成功,和nginx良好的框架,stream模块前景一片光明。
stream 模块编译
stream模块默认没有编译到nginx, 编译nginx时候 ./configure –with-stream 即可
官网:http://nginx.org/en/docs/stream/ngx_stream_core_module.html
用法
stream模块用法和http模块差不多,关键的是语法几乎一致。熟悉http模块配置语法的上手更快
以下是一个配置了tcp负载均衡和udp(dns)负载均衡的例子, 有 server,upstream块,而且还有server,
hash, listen, proxy_pass等指令,如果不看最外层的stream关键字,还以为是http模块呢。
worker_processes auto;
error_log logs/error.stream.log info;
events {worker_connections 1024;
}
stream {upstream backend {hash $remote_addr consistent;server 127.0.0.1:12346 weight=5;server 127.0.0.1:12347 max_fails=3 fail_timeout=30s;server 127.0.0.1:12348 max_fails=3 fail_timeout=30s;}upstream dns {server 17.61.29.79:53;server 17.61.29.80:53;server 17.61.29.81:53;server 17.61.29.82:53;}server {listen 12345;proxy_connect_timeout 1s;proxy_timeout 3s;proxy_pass backend;}server {listen 127.0.0.1:53 udp;proxy_responses 1;proxy_timeout 20s;proxy_pass dns;}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
stream core 一些变量
注意:变量支持是从 nginx 1.11.2版本开始的
$binary_remote_addr
二进制格式的客户端地址
$bytes_received
从客户端接收到的字节数
$bytes_sent
发往客户端的字节数
$hostname
连接域名
$msec
毫秒精度的当前时间
$nginx_version
nginx 版本
$pid
worker进程号
$protocol
通信协议(UDP or TCP)
$remote_addr
客户端ip
$remote_port
客户端端口
$server_addr
接受连接的服务器ip,计算此变量需要一次系统调用。所以避免系统调用,在listen指令里必须指定具体的服务器地址并且使用参数bind。
$server_port
接受连接的服务器端口
$session_time
毫秒精度的会话时间(版本1.11.4开始)
$status
会话状态(版本1.11.4开始), 可以是一下几个值:
200
成功
400
不能正常解析客户端数据
403
禁止访问
500
服务器内部错误
502
网关错误,比如上游服务器无法连接
503
服务不可用,比如由于限制连接等措施导致
$time_iso8601
ISO 8601时间格式
$time_local
普通日志格式的时间戳
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
stream 模块
目前官网上列出的第三方模块、简直就是http模块的镜像、比如access模块访问控制ip和ip段,map模块实现映射、 geo模块实现地理位置映射、等等。使用这些模块的时候一定要看是哪个版本才支持的、比如log模块,只有在nginx-1.11.4才支持。
ngx_stream_core_module
ngx_stream_access_module
ngx_stream_geo_module
ngx_stream_geoip_module
ngx_stream_js_module
ngx_stream_limit_conn_module
ngx_stream_log_module
ngx_stream_map_module
ngx_stream_proxy_module
ngx_stream_realip_module
ngx_stream_return_module
ngx_stream_split_clients_module
ngx_stream_ssl_module
ngx_stream_ssl_preread_module
ngx_stream_upstream_module
ngx_stream_upstream_hc_module
nginx stream模块相关推荐
- Nginx stream模块初探
Nginx stream模块初探 前言 nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发.代理或者负载均衡等.这完全就是抢HAproxy份额的节奏,鉴于nginx在7层 ...
- Centos 利用yum源安装 nginx stream模块
环境 CentOS 7.9 (腾讯云服务器) nginx 1.20.1 配置stream参考这里. nginx 动态模块 nginx 1.9.11 开始增加加载动态模块支持,从此不再需要替换nginx ...
- 利用nginx的stream模块实现内网端口的转发代理
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发.代理或者负载均衡等.比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx ...
- linux nginx 安装stream,Centos7下Nginx简单搭建与stream模块简单配置
一:Nginx安装 搭建环境:Centos 7 需要软件包:openssl.zlib.pcre.nginx (软件包下载地址个人网盘可能会失效:https://pan.baidu.com/s/1qYN ...
- udp发包工具_利用nginx的第四层协议stream模块实现UDP端口的负载均衡
1.服务 Nginx1.9以上版本 UDP 服务 1:8011 UDP 服务 2:8012 2.Nginx 配置 编译安装参数:--with-stream stream 模块主要配 ...
- Nginx使用stream模块分流实现端口复用
使用Nginx复用端口有很多方法,最普遍的方法是在不同的server块中监听同一端口,根据不同的主机名完成分流.本文介绍了一种较新的端口复用方法,它可以方便地对TLS加密的TCP数据进行分流. 1 N ...
- Nginx服务使用stream模块TCP代理rtmp视频流
搭建环境 centos7.5,nginx-1.12.1 注释 nginx版本建议为1.9版本以上(nginx从1.9.0开始,新增加了一个stream模块,可以使用这个模块) 1.9版本以下nginx ...
- 添加nginx中的stream模块
注: 1.nginx从1.9.0开始,新增加了一个stream模块,所以本文适用于1.9.0版本以上的nginx. 2.没有特殊标注需要root的用普通nginx用户就可以,比如你在a用户下安装ngi ...
- 详解:基于nginx tcp模块基本配置
2019独角兽企业重金招聘Python工程师标准>>> The ngx_http_upstream_module module is used to define groups of ...
最新文章
- Spring for Android 1.0.0发布
- android自定义滤镜,【Android】自定义View那点事(三)ColorFilter篇
- 下载OpenCV神经网络模型及pycharm中 argparse的参数设置
- 我的YUV播放器MFC小笔记:非模态对话框建立及窗口间传值
- java 方法体 out 参数_Java方法详解
- 《软件测试与质量保证》期末复习重点
- k8s 命令 重启_k8s基本命令
- php gbk json,GBK的页面输出JSON格式的php函数
- openlayers5之view缩放定位
- 图书馆占座系统(三)
- 易语言大漠插件模块制作设置字库及OcrEx识别字符串
- WebClass实现动态WEB编程之实践篇 (转)
- 【MAC技巧】 MAC下两款免费的风扇调节工具
- openwrt编译教程(第一章)
- android遥控杆控件,Android自定义滑杆控件SeekBar多功能版本
- page_to_pfn 、virt_to_page、 virt_to_phys、page、页帧pfn、内核虚拟地址、物理内存地址linux内核源码详解
- Mysql数据库 | SQL语句解析『下篇』
- 大数据惊人:凌晨4点的中国人都在做什么?
- 使用素描图像识别人脸
- 适合装u盘的linux系统下载软件,ghost xp系统镜像安装win7系统下载地址适合装u盘的linux...