nginx 配置负载均衡 tcp代理

LB (负载均衡器) 负责分发设备的 MQTT 连接与消息到 EMQ X 集群,LB 提高 EMQ X 集群可用性、实现负载平衡以及动态扩容

部署架构推荐在 LB 终结 SSL 连接。设备与 LB 之间 TLS 安全连接,LB 与 EMQ X 之间普通 TCP 连接。这种部署模式下 EMQ X 单集群可轻松支持 100 万设备

一,websocket负载均衡

	  upstream tomcatserver1 {
       
		    server 192.168.78.131:8083 weight=1;  #负载均衡的主机IP与端口 weight权重 代表分到资源的比例
		    server 192.168.78.130:8083 weight=1;
	  }  

     server {
     
        listen       8083;
        server_name  192.168.0.153;
	 # 转发websocket需要的设置
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
      location / {
     
            proxy_pass  http://tomcatserver1;
        }

nginx 配置负载均衡 tcp代理_第1张图片

二,tcp代理 配置负载均衡

必须是 nginx-1.9.0 以上版本(包括1.9.0)。该版本之后,增加了 stream module,可以实现tcp代理 配置负载均衡

stream{
     
	 upstream mqtt_servers {
     
	    zone tcp_servers 64k;
	    #hash $remote_addr;
	    server 192.168.78.131:1883 weight=1 max_fails=2 fail_timeout=30s;
	    server 192.168.78.130:1883 weight=1 max_fails=2 fail_timeout=30s;
	 }

	server {
     
	    listen 1883;
	    #status_zone tcp_server;
	    proxy_pass mqtt_servers;
	    proxy_buffer_size 4k;
	    tcp_nodelay on;
	}
}

http{
     
    ...
}

负载均衡的作用

将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量

1)down

表示单前的server暂时不参与负载

2)Weight

默认为1.weight越大,负载的权重就越大。

3)max_fails

允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4)fail_timeout

max_fails 次失败后,暂停的时间。

5)Backup

其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

你可能感兴趣的:(mqtt,nginx,负载均衡,EMQ,X,集群,LB)