首先保证你的项目能在window上运行,然后打包的时候注意一些ip地址什么的,不然会访问不到。进行
打包
打成jar包
jar包上传到linux服务器
使用xftp
完事之后直接运行这个项目
没什么问题
在nginx中配置反向代理
8090是我项目运行的地址
启动nginx
本地可以访问,刚才运行的项目也可以访问。
上面步骤相同,开启多态nginx集群,运行多个项目,这里不多说。
配置keepalived
主机master配置
vim /etc/keepalived/keepalived.conf
小写dG 从开头删除到文件末尾,点i进入编辑模式,复制下面内容:
global_defs {
notification_email {
test@qq.com
}
notification_email_from test@qq.com #发送通知邮件时邮件源地址是谁
smtp_server 127.0.0.1
smtp_connect_timeout 30 #连接smtp连接超时时间
router_id LVS_DEVEL #机器标识
}
#用来做健康检查的,当时检查失败时会将vrrp_instance的priority减少相应的值。
vrrp_script chk_http_port {
script "/usr/checknginx.sh" #监控脚本
interval 2 #监控脚本检测周期秒
weight 10 #意思是如果script中的指令执行失败,那么相应的vrrp_instance的优先级会减少10个点。
}
vrrp_instance VI_1 {
state MASTER #backup机器配置为BACKUP
interface eth0 #绑定的网卡名称
virtual_router_id 51 #必须与backup机器配置相同
priority 100 #优先级,要比backup机器高至少50
advert_int 1 #检查间隔,默认1秒 VRRP心跳包的发送周期,单位为s
authentication {
auth_type PASS #授权类型,必须与backup相同
auth_pass 1111 #授权密码,必须与backup相同
}
virtual_ipaddress {
192.168.23.220 #虚拟ip地址,必须与backup相同
}
track_script {
chk_http_port
}
}
同样操作,从机:
bal_defs {
notification_email {
test@qq.com
}
notification_email_from test@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL_BAK
}
vrrp_script chk_http_port {
script "/usr/checknginx.sh" #监控脚本
interval 2 #监控脚本检测周期
weight -10 #意思是如果script中的指令执行失败,那么相应的vrrp_instance的优先级会减少10个点。
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS #授权类型,必须与backup相同
auth_pass 1111 #授权密码,必须与backup相同
}
virtual_ipaddress {
192.168.50.199 #虚拟ip地址,必须与backup相同
}
track_script {
chk_http_port
}
nopreempt #不抢占IP,即当keepalived发生切换后,只能配置在BACKUP上 ,
#这样避免来回切换带来的系统开销,同时也避免了IP切换带来的系统不稳定性
}
解释放在上面代码中自己理解
测试 访问虚拟ip
查看ip的mac地址,两台服务器mac地址是不同的
arp -a ip
当有一台keepalived宕机的时候
会出现超时但是立马转向备机keepalived来保证nginx的高可用。完成!