nginx四层代理原理

nginx一般使用七层代理也就是http应用层代理,可以反向代理和负载均衡。但是项目要使用长连接,此时内网服务器肯定不能暴漏,还是需要接入层网关进行转发,一般有使用lvs,lvs专门用作四层代理和负载均衡基于内核态,并发量很大。但是lvs配置相对复杂,我们的这个项目长连接数不会太多,所以不需要使用lvs。就直接使用nginx的四层代理,nginx的四层代理需要使用nginx的stream模块在编译的时候需要编译进去,在nginx.conf文件中配置如下:

stream {                                           #stram模块 和http模块是一同等
级;做四层代理时需要添加上这个模块;
      server {
          listen 9000;                          #9000端口将以4层TCP协议方式转发
至后端app_sever;
          proxy_pass app_server;
      }
      upstream app_server{
          server 192.168.0.110:9000;
      }
}

比如后端app应用的长连接ip端口是192.168.0.110:9000,nginx也使用9000端口作为长连接端口,则客户端需要连接nginx的9000端口,然后发送报文到nginx,nginx再转发给192.168.0.110:9000后端应用,转发原理是nginx作为客户端去和192.168.0.110:9000的后端应用建立长连接,然后将报文发送给192.168.0.110:9000

可以看到客户端每发送一个长连接到nginx,nginx作为客户端都发起socket连接到后端服务,这样肯定会占用更多的文件描述符。

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值