通过keepalived实现系统的高可用,nginx反射代理实现负载均衡,Tomcat+Redis实现session的共享
环境准备
#---两台Centos主机
tomcat1:192.168.115.160
tomcat2:192.168.115.161
#---两台Centos主机
#在centos主机上分别安装keepalived,nginx,tomcat
keepalived配置
#------------------------keepalived配置----------------------
#keepalived配置(/etc/keepalived/keepalived.conf)--tomcat1
! Configuration File for keepalived
global_defs {
notification_email {
xuwenpeng3@163.com
}
notification_email_from xuwenpeng3@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id tye_master
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance TYE {
state MASTER
interface ens33
virtual_router_id 10
priority 240
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.115.200/24 dev ens33
}
}
#keepalived配置(/etc/keepalived/keepalived.conf)--tomcat2
! Configuration File for keepalived
global_defs {
notification_email {
xuwenpeng3@163.com
}
notification_email_from xuwenpeng3@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id tye_backup
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance TYE {
state BACKUP
interface ens33
virtual_router_id 10
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.115.200/24 dev ens33
}
}
#------------------------keepalived配置----------------------
Nginx配置
worker_processes 1;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream tomcatserver {
server 192.168.115.160:8080 weight=2;
server 192.168.115.161:8080 weight=1;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcatserver/tye;
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Tomcat配置
#配置tomcat共享session需要下载对应的jar包[tomcat+redis]()
<Valve className="com.s.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.s.tomcat.redissessions.RedisSessionManager"
host="192.168.115.160" #redis服务器地址
port="6379" #redis服务器端口
database="0" #数据库名称
password="tye0000" #redis密码(远程连接需要给数据库设置密码)
maxInactiveInterval="60" />