一、配置tcp负载均衡

vi /usr/local/nginx/conf/nginx.conf
#加入如下内容
stream {
#轮询方式 默认空着为RR
#ip_hash; 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
# fair; 按后端服务器的响应时间来分配请求,响应时间短的优先分配。第三方插件
# weight 权重,默认为1。 weight越大,负载的权重就越大。
    upstream netty {
        server IP:8881; #tcp服务端
        server IP:8882; #tcp服务端
    }
    server {
        listen 12311; #tcp监听端口
        proxy_connect_timeout 1s; #连接超时时间
        proxy_pass netty; #指向代理 netty 即为上方的 upstream netty
    }
}
#保存,重启nginx
/usr/local/nginx/sbin/nginx -s reload

二、配置udp负载均衡

vi /usr/local/nginx/conf/nginx.conf
#加入如下内容
stream {
	#轮询方式 默认空着为RR
	#ip_hash; 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
	# fair; 按后端服务器的响应时间来分配请求,响应时间短的优先分配。第三方插件
	# weight 权重,默认为1。 weight越大,负载的权重就越大。
    upstream netty {
        server IP:8881; #udp监听
        server IP:8882; #udp监听
    }
    server {
        listen 12311 udp; #udp监听端口 标注为udp
        proxy_connect_timeout 1s; #连接超时时间
        proxy_pass netty; #指向代理 netty 即为上方的 upstream netty
    }
}
#保存,重启nginx
/usr/local/nginx/sbin/nginx -s reload

三、配置websocket负载均衡

vi /usr/local/nginx/conf/nginx.conf
#加入如下内容
http{
	#轮询方式 默认空着为RR
	#ip_hash; 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
	# fair; 按后端服务器的响应时间来分配请求,响应时间短的优先分配。第三方插件
	# weight 权重,默认为1。 weight越大,负载的权重就越大。
    upstream websocket {
        server IP:30260 weight=1; #websocket服务端
        server IP:30260 weight=1; #websocket服务端


    }
    server {
        listen 50000; #nginx 监听端口
        server_name IP; #服务器名称
        location /ws{ #websocket连接路径
        proxy_pass http://websocket; #代理路径

		proxy_connect_timeout 4s; #连接超时 
		#这个是服务器对你等待最大的时间,也就是说,当你webSocket使用nginx转发的时候,用上面的配置2来说,
		#如果60秒内没有通讯,依然是会断开的 	
		proxy_read_timeout 60s; 
		proxy_send_timeout 12s; #发送超时
        proxy_set_header Host $host; #以下均为固定格式
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
    }
}
#保存,重启nginx
/usr/local/nginx/sbin/nginx -s reload

四、配置mysql负载均衡

vi /usr/local/nginx/conf/nginx.conf
stream {
    upstream mysql{
       hash $remote_addr consistent;
      # $binary_remote_addr;
       server IP:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 50000;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
       proxy_pass mysql;
    }
}
#保存,重启nginx
/usr/local/nginx/sbin/nginx -s reload

五、配置http负载均衡

vi /usr/local/nginx/conf/nginx.conf
#加入如下内容
upstream eureka-host {
		server IP:10000;
		server IP:10000;
	}
server {
        listen       80;
        server_name  localhost;
        client_max_body_size 10m;
	    vhost_traffic_status off;
	    #支持表达式匹配
	    location /路径/* {
   	       #proxy_set_header X-Requested-With XMLHttpRequest;
            proxy_pass http://eureka-host/;
            proxy_http_version 1.1;
            keepalive_timeout  0;
        	proxy_set_header Connection close;
        }
    }
#保存,重启nginx
/usr/local/nginx/sbin/nginx -s reload