Nginx负载均衡--TCP/UDP流
副标题[/!--empirenews.page--]
负载均衡是指在多个后端服务器之间有效地分配网络流量。 从NGINX Plus R5[1] 版本开始可以代理和负载均衡传输控制协议(Transmission Control Protocol,TCP)通信。TCP是许多流行应用程序和服务的协议,如LDAP、MySQL和RTMP。 从NGINX Plus R9[2]版本开始可以代理和负载平衡UDP流量。用户数据报协议(User Datagram Protocol,UDP)是许多流行的非事务性应用程序的协议,如DNS、syslog和RADIUS。 反向代理 基础条件 需要使用ngx_stream_core_module模块,该模块从版本1.9.0开始可用。这个模块在默认情况下是不构建的,需使用--with-stream配置参数来启用它。如下配置:
配置反向代理 配置反向代理,以便NGINX打开资源,将来自客户端的TCP连接或UDP数据报转发到upstream组或代理服务器。 A. 配置反向代理之前,看一下ngx_stream_core_module模块中几个元素的语法:
listen指令,设置服务器将接受连接的套接字的地址和端口。可以只指定端口。地址也可以是主机名,例如:
示例如下:
listen指令在此默认协议是TCP协议,对于UDP流,需要指定udp参数,如下:
B. 使用ngx_stream_proxy_module模块(默认是编译进来的)的proxy_pass指令配置代理,proxy_pass指令语法:
设置被代理服务器的地址。地址可以定义为一个域名或IP地址和一个端口号:
或一个UNIX-domain socket路径:
C. 如果代理服务器有多个网络接口,可以配置NGINX使用特定的源IP地址去连接upstream服务器。这可能很有用,当一个代理服务器在nginx后面,并配置了接受来自特定IP网络或IP地址范围的连接。 使用ngx_stream_proxy_module模块的proxy_bind指令,其语法:
从指定的本地IP地址向被代理服务器发起外部连接。特殊值off取消从上层配置中继承的proxy_bind指令产生的影响,允许系统自动分配本地IP地址。 transparent参数(1.11.0+)允许从一个非本地IP地址发起到被代理服务器的外部连接,例如从一个客户端的真实IP地址:
为了使此参数起作用,通常需要使用超级用户权限运行nginx工作进程。 在Linux上,不需要(1.13.8+),就像指定了transparent参数一样,工作进程从主进程继承CAP_NET_RAW功能。 还需要配置核心路由表以拦截来自被代理服务器的网络流量。 示例配置如下:
负载均衡 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |