nginx代理Socket程序 - 一招3分钟

Posted Sumslack团队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx代理Socket程序 - 一招3分钟相关的知识,希望对你有一定的参考价值。

背景与需求描述 

nginx强大的http proxy为我们所熟知,自nginx1.9后,它也支持socket(支持TCP,UDP)代理,比如代理你的netty程序,日志中心服务器或聊天程序,所有基于socket连接的程序都可以用它来做代理哦(为什么要这样做?你懂得,这样我们只需一台服务器对外,并且可利用nginx强大的功能,比如负载均衡,限流,ssl等)

需求:中央日志收集器采用TCP自有协议,基于Netty编写,用来收集生产的服务器错误日志/用户行为蛮点数据,利用nignx做TCP Proxy,生产上的Agent通过域名与端口:log.xxx.com 3333来连接中央日志

Nginx配置与实现 

  1. 将Nginx升级到1.9+,如果nginx版本过低,需要使用手动将stream模块编译进nginx:--with-stream  --with-stream_ssl_module

  2. 增加stream节点(以往配置的http代理都在http节点处),在upstream里可加入多个节点支持负载均衡:


 

如果文章对你有用,记得打赏我们哦~



以上是关于nginx代理Socket程序 - 一招3分钟的主要内容,如果未能解决你的问题,请参考以下文章

当远程但不是本地时,Socket.io 退回到 nginx 代理后面的轮询(websocket 给出 400)

5分钟用Go语言(Golang)实现一个HTTP代理(Proxy)

Socket.io无法在Node.js前面使用Nginx反向代理

下班前几分钟,我弄懂了Nginx

nginx 非socket代理配置

10分钟搞定nginx实现负载均衡