一、配置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