IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> LVS+Keepalived部署 -> 正文阅读

[Java知识库]LVS+Keepalived部署

LVS+Keepalived部署

?

一.项目准备

准备四台虚拟机,两台做代理服务器,两台做真实服务器(真实服务器只是用来进行web测试)

1、选择两台LVS服务器作为keepalived(一台master 一台backup)。

真实服务器需要nginx来提供web服务

2、给两台LVS服务器安装keepalived制作高可用生成VIP

准备四台机器:
(主)master:192.168.182.144 ? ? 配置vip:192.168.182.100
(备)backup:192.168.182.150
(部署项目的服务器)RS1:192.168.182.143
(部署项目的服务器)RS2:192.168.182.151
?
给所有的机器关闭防火墙和selinux
# systemctl stop firewalld && setenforce 0

3.给RS1配置tomcat+Java环境做单机多实例部署

1.配置jdk环境
下载地址 https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html  //选择 linux-x64.tar.gz
(1)解压包:
# tar xvzf jdk-8u271-linux-x64.tar.gz  -C /usr/local/
(2)配置环境变量
# vim /etc/profile.d/java.sh 
JAVA_HOME=/usr/local/jdk1.8.0_271
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
(3)使环境变量生效
source /etc/profile.d/java.sh
(4)测试是否生效
# java -version ? ? ? ? ? ?  [如果看到使open-jdk,则是因为yum安装了jdk,卸载并删除/usr/bin/java]
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
?
2.tomcat部署
下载地址 https://tomcat.apache.org/download-80.cgi ? 选择core版的
(1)解压包
# tar xvzf apache-tomcat-8.5.57.tar.gz  -C  /usr/local/
(2)复制tomcat并分别改名为tomcat_qf1、tomcat_qf2、tomcat_qf3,且放同一目录下
# cd /usr/local
# mv apache-tomcat-8.0.27 tomcat_qf1
# cp -r apache-tomcat-8.0.27 tomcat_qf2
# cp -r apache-tomcat-8.0.27 tomcat_qf3
(3)修改端口
# sed -i 's#8005#8011#;s#8080#8081#' tomcat_qf2/conf/server.xml
# sed -i 's#8005#8012#;s#8080#8082#' tomcat_qf3/conf/server.xml
(4)启动tomcat服务
# /usr/local/tomcat_qf1/bin/startup.sh
# /usr/local/tomcat_qf2/bin/startup.sh
# /usr/local/tomcat_qf3/bin/startup.sh
(5)浏览器分别访问
http://ip:8080 ?  //(web1)
http://ip:8081 ?  //(web2)
http://ip:8082 ?  //(web3)

4.给RS2配置nginx服务

# yum install epel-release -y ? //配置epel源
# yum install -y nginx ? ? ? ?  //yum安装nginx
部署nginx单机多实例项目
# vim /etc/nginx/nginx.conf
worker_processes ?1;
events {
 ?  worker_connections ?1024;
}
http {
 ?  include ? ? ? mime.types;
 ?  default_type  application/octet-stream;
 ?  sendfile ? ? ?  on;
 ?  keepalive_timeout ?65;
?
 ?  server {
 ? ? ?  listen ? ? ? 80;
 ? ? ?  server_name  _;
 ? ? ?  location / {
 ? ? ?  root  html;
 ? ? ?  index index.html;
 ? ? ?  }
 ? ? ?  }
 ?  server {
 ? ? ?  listen ? ? ? 81;
 ? ? ?  server_name  _;
 ? ? ?  location / {
 ? ? ?  root  /usr/share/nginx/html/81;
 ? ? ?  index index.html;
 ? ? ?  }
 ? ? ?  }
 ?  server {
 ? ? ?  listen ? ? ? 82;
 ? ? ?  server_name  _;
 ? ? ?  location / {
 ? ? ?  root  /usr/share/nginx/html/82;
 ? ? ?  index index.html;
?
# nginx -t //效验文件是否有误
# nginx -s reload  //启动nginx
创建81,82目录
# mkdir /etc/share/nginx/html/8{1,2}
# echo 8181 > /usr/share/nginx/html/81/index.html  //区分web页面看是否无误
# echo 8282 > /usr/share/nginx/html/82/index.html
浏览器访问ip:80
 ? ? ? ? ip:81
 ? ? ? ? ip:82

5.主/备调度器安装软件及配置

主:master
# yum -y install ipvsadm keepalived
# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak ? #备份
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
 ? router_id lvs-master ? #只是名字而已,辅节点改为lvs-backup(两个名字一定不能一样)
}
?
vrrp_instance VI_1 {
 ?  state MASTER ? ? ? ?#定义主还是备,备用的话写backup
 ?  interface ens32 ? ? #VIP绑定接口
 ?  virtual_router_id 80 ?#整个集群的调度器一致(在同一个集群)
 ?  priority 100 ? ? ? ? #(优先权)back改为50(50一间隔)
 ?  advert_int 1 ? ? ? ? #检查间隔,默认为1s
 ?  authentication {
 ? ? ?  auth_type PASS ? ? ?#主备节点认证
 ? ? ?  auth_pass 1111
 ?  }
 ?  virtual_ipaddress {
 ? ? ? ?192.168.182.100 ? ?#VIP(自己网段的)
 ?  }
}
virtual_server 192.168.182.100 80 { ? ?#LVS配置
    delay_loop 6 ?#启动6个进程
    lb_algo rr ? ? #LVS调度算法
    lb_kind DR ? ? #LVS集群模式(路由模式)
    nat_mask 255.255.255.0
    protocol TCP ? ? ?#健康检查使用的协议
    real_server 192.168.182.144 80 {
        weight 1
        inhibit_on_failure ? #当该节点失败时,把权重设置为0,而不是从IPVS中删除
        TCP_CHECK { ? ? ? ? ?#健康检查
            connect_port 80 ? #检查的端口
            connect_timeout 3 ?#连接超时的时间
            }
        }
}
?
?
?
备:backup
# yum -y install ipvsadm keepalived
# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak ? #备份
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
 ? router_id lvs-backup ? #只是名字而已,辅节点改为lvs-backup(两个名字一定不能一样)
}
?
vrrp_instance VI_1 {
 ?  state BACKUP ? ? ? ?#定义主还是备,备用的话写backup
 ?  interface ens32 ? ? #VIP绑定接口
 ?  virtual_router_id 80 ?#整个集群的调度器一致(在同一个集群)
 ?  priority 50 ? ? ? ? #(优先权)back改为50(50一间隔)
 ?  advert_int 1 ? ? ? ? #检查间隔,默认为1s
 ?  authentication {
 ? ? ?  auth_type PASS ? ? ?#主备节点认证
 ? ? ?  auth_pass 1111
 ?  }
 ?  virtual_ipaddress {
 ? ? ? ?192.168.182.100 ? ?#VIP(自己网段的)
 ?  }
}
virtual_server 192.168.182.100 80 { ? ?#LVS配置
    delay_loop 6 ?#启动6个进程
    lb_algo rr ? ? #LVS调度算法
    lb_kind DR ? ? #LVS集群模式(路由模式)
    nat_mask 255.255.255.0
    protocol TCP ? ? ?#健康检查使用的协议
    real_server 192.168.182.150 80 {
        weight 1
        inhibit_on_failure ? #当该节点失败时,把权重设置为0,而不是从IPVS中删除
        TCP_CHECK { ? ? ? ? ?#健康检查
            connect_port 80 ? #检查的端口
            connect_timeout 3 ?#连接超时的时间
            }
        }
}
?

6.给主/备调度器配置反向代理+负载均衡

主/备调度器配置一样
# vim /etc/nginx/nginx.conf
worker_processes 1;
?
events {
worker_connections 1024;
}
?
http {
 ?  include mime.types;
 ?  default_type application/octet-stream;
 ?  upstream myweb {
 ? ?  server 192.168.182.143:8080 weight=1;
 ? ?  server 192.168.182.143:8081 weight=2;
 ? ?  server 192.168.182.143:8082 weight=3;
 ? ?  server 192.168.182.151:80 ? weight=3;
 ? ?  server 192.168.182.151:81 ? weight=2;
 ? ?  server 192.168.182.151:82 ? weight=1;
 ?  }
 ?  server {
 ?  listen 80;
 ?  server_name _;
 ?  location / {
 ?  proxy_pass http://myweb/;
 ?  }
 ?  }
?
}
?

7.启动KeepAlived(主备均启动)

主 # systemctl start keepalived
备 # systemctl start keepalived ?
主 # systemctl enable keepalived ?  //开机自启(可以不设置)
备 # systemctl enable keepalived
?
?
主 # ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 ?-> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP ?192.168.192.100:80 rr
 ?-> 192.168.192.144:80 ? ? ? ? ?  Route ? 1 ? ? ?0 ? ? ? ? ?0 ? ? ? ? 
 ?
 ?
备 # ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 ?-> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP ?192.168.182.100:80 rr
 ?-> 192.168.182.150:80 ? ? ? ? ?  Route ? 1 ? ? ?0 ? ? ? ? ?0 ? ? ? ? 
 ? 

测试

浏览器访问http://vip

如果主节点服务器宕机了(我们把服务停止了用来测试),VIP会自己漂移到备用节点上。

但是用户访问时却感觉不到

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:06:43  更:2021-08-09 10:08:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 11:23:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码