LNMP+Tomcat+Keepalived+LVS 多端口负载均衡
时间:2022-06-19
本文章向大家介绍LNMP+Tomcat+Keepalived+LVS 多端口负载均衡
,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
应用场景:Keepalived+LVS高可+负载均衡集群架构中rs同时跑httpd(80端口)和Java(8080端口)服务,使用Keepalived负载均衡多个端口。 如果想全部由80端口提供服务,则Keepalived+LVS负载均衡层就只开启80端口,内部节点使用nginx代理8080端口。
多端口负载均衡
[root@director sbin]# yum install -y keepalived
[root@Centos-1 sbin]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.14.13
}
}
virtual_server 192.168.14.13 80 {
delay_loop 10
lb_algo wlc
lb_kind DR
persistence_timeout 180
protocol TCP
real_server 192.168.14.127 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.128 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.129 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
virtual_server 192.168.14.13 8080 {
delay_loop 10
lb_algo wlc
lb_kind DR
persistence_timeout 180
protocol TCP
real_server 192.168.14.127 8080 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.128 8080 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.129 8080 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
在dir2上执行同样的操作,lvs多端口负载均衡,需要注意的是dir2机器上state改为BACKUP,priority设为90。
nginx反向代理Tomcat
在rs上创建nginx代理虚拟主机,名为zrlog.conf,然后配置内容如下:
[root@128rs2 ~]# vim /usr/local/nginx/conf/vhosts/zrlog.conf
server {
listen 80;
server_name www.3zuzrlog.com;
location / {
proxy_pass http://localhost:8080;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
此时Keepalived+LVS只需监听80端口即可:
[root@Centos-1 sbin]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.14.13
}
}
virtual_server 192.168.14.13 80 {
delay_loop 10
lb_algo wlc
lb_kind DR
persistence_timeout 180
protocol TCP
real_server 192.168.14.127 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.128 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.14.129 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
(adsbygoogle = window.adsbygoogle || []).push({});
- 给PHP开发者讲讲PHP源码-第二部分
- 给PHP开发者讲讲PHP源码-第一部分
- tomcat源码解读一 Digester的解析方式
- Markdown 语法说明(简体中文版)
- C++中_onexit()用法简述
- tomcat请求处理分析(六)servlet的处理过程
- FFmpeg菜鸡互啄#第1篇#一些基本概念
- FFmpeg菜鸡互啄#第2篇#配置VS开发环境
- FFmpeg菜鸡互啄#第3篇#视频解码
- FFmpeg菜鸡互啄#第4篇#音频解码
- FFmpeg菜鸡互啄#第5篇#视频帧格式转换
- tomcat请求处理分析(三) 绑定本地端口监听请求
- 利用FFmpeg对火眼一体摄像机的回调数据进行处理:YUV转H264,H264封装flv,所有输入都是在内存中。
- MySQL 传统复制中常见故障处理和结构优化案例分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- os.path.basename()
- 利用frida与ida实战脱壳360加固
- 你知道C语言中的危险函数吗?
- python与安全(四)shell反弹
- 怎么快速修复 bug ?
- 变量类型(cpu/gpu)
- 【Go语言学习】匿名函数与闭包
- Python中两种UnboundLocalError的解决方法
- 传智播客OA项目学习--阶段二(实体设计及技巧)
- 小生归一(五)md5扩展长度攻击
- 传智播客OA项目学习--阶段二(系统管理模块)
- main函数中的argc和argv到底是个啥?
- 传智播客OA项目学习--阶段一(2、框架整合)
- 微信XML消息model定义之微信公众平台(一)
- 自动返回笑话接口调用之微信公众平台(二)