Tomcat+nginx+Keepalived部署实现集群
Tomcat+nginx+Keepalived部署实现集群
环境说明:
系统:Centos-7
主机:Centos-7 x3
IP地址:
服务器1(192.168.10.102/24)
服务器2(192.168.10.103/24)
服务器3(192.168.10.104/24)
源码安装包路径:/GZ/
安装路径:/usr/loval/
一、Tomcat安装部署:(全部服务器安装)
1、安装Tomcat,安装之前必须先安装Java,先安装java
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
>1、解压安装java
[root@lzc GZ]# tar zxvf jdk-8u151-linux-x64.tar.gz
>2、配置java
[root@lzc GZ]# mv jdk1.8.0_151/ /usr/local/java
[root@lzc GZ]# vim /etc/profile.d/java.sh
#写入
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
#保存退出
>3、导入环境变量,查看Java版本
[root@lzc GZ]# source /etc/profile.d/java.sh #导入环境变量
[root@lzc GZ]# java -version #查看JAVA版本
2、下载安装Tomcat(每台服务器配置Tomcat8080、Tomcat8081)
安装路径:/usr/local/Tomcat/
├── Tomcat8080
├── Tomcat8081
>1、下载解压Tomcat
下载地址:https://tomcat.apache.org/download-90.cgi
[root@lzc GZ]# tar
zxvf apache-tomcat-9.0.2.tar.gz
>2、Tomcat安装路径
[root@lzc GZ]# mv apache-tomcat-9.0.2 /usr/local/Tomcat/Tomcat8080
[root@lzc GZ]# mv apache-tomcat-9.0.2 /usr/local/Tomcat/Tomcat8081
>3、修改Tomcat端口号:(修改前先备份 cp
server.xml server.xml.bak)
/usr/local/Tomcat/Tomcat8081/conf
vim server.xml(把8005修改8006)
(8080修改8081)
#保存退出
>4、启动Tomcat
[root@lzc /]#
/usr/local/Tomcat/Tomcat8080/bin/startup.sh
Using CATALINA_BASE:
/usr/local/Tomcat/Tomcat8080
Using CATALINA_HOME:
/usr/local/Tomcat/Tomcat8080
Using CATALINA_TMPDIR: /usr/local/Tomcat/Tomcat8080/temp
Using JRE_HOME:
/usr/local/java
Using CLASSPATH:
/usr/local/Tomcat/Tomcat8080/bin/bootstrap.jar:/usr/local/Tomcat/Tomcat8080/bin/tomcat-juli.jar
Tomcat started.
[root@lzc /]#
/usr/local/Tomcat/Tomcat8081/bin/startup.sh
Using CATALINA_BASE:
/usr/local/Tomcat/Tomcat8081
Using CATALINA_HOME:
/usr/local/Tomcat/Tomcat8081
Using CATALINA_TMPDIR: /usr/local/Tomcat/Tomcat8081/temp
Using JRE_HOME:
/usr/local/java
Using CLASSPATH:
/usr/local/Tomcat/Tomcat8081/bin/bootstrap.jar:/usr/local/Tomcat/Tomcat8081/bin/tomcat-juli.jar
Tomcat started.
>5、查看Tomcat端口
[root@lzc /]# netstat -ntpl | egrep ":8080|8081"
tcp6 0
0 :::8080
:::*
LISTEN 16907/java
tcp6 0
0 :::8081
:::* LISTEN 17430/java
>6、修改web页面为对应的服务器和端口号
路径:/usr/local/Tomcat/Tomcat8080/webapps/ROOT
[root@lzc ROOT]# pwd
/usr/local/Tomcat/Tomcat8080/webapps/ROOT
[root@lzc ROOT]# more index.jsp
<%@ page session="false"
pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"
%>
<center><H1> 服务器:192.168.10.102
<br> Tomcat:8080</H1></center>
<hr>
[root@lzc ROOT]# pwd #复制index.jsp到Tomcat8081
cp index.jsp /usr/local/Tomcat/Tomcat8081/webapps/ROOT/
/usr/local/Tomcat/Tomcat8081/webapps/ROOT
[root@lzc ROOT]# sed -i "s/8080/8081/g"
index.jsp
[root@lzc ROOT]# more index.jsp
<%@ page
session="false" pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8" %>
<center><H1>
服务器:192.168.10.102
<br> Tomcat:8081</H1></center>
<hr>
>7、访问浏览器测试,http://服务器地址:8080、http://服务器地址:8081,如果出现下图,则说明Tomcat成功启动
>8、扩展内容Tomcat:
启动Tomcat:
[root@lzc]# /usr/local/Tomcat/Tomcat8080/bin/startup.sh
[root@lzc]# /usr/local/Tomcat/Tomcat8081/bin/startup.sh
关闭Tomcat:
[root@lzc]# /usr/local/Tomcat/Tomcat8080/bin/shutdown.sh
[root@lzc]# /usr/local/Tomcat/Tomcat8081/bin/shutdown.sh
或者
[root@lzc]# ps -ef | grep Tomcat8080 |
grep -v grep | awk '{print $2}' | xargs kill -9
shell脚本进程守护:
创建脚本:
[root@lzc shell]# more keeptomcat.sh
#!/bin/bash
#脚本功能每一分钟检测Tomcat进程是否存在
#如Tomcat进程不存在自动重启Tomcat
#Tomcat8080
netstat -ntpl | grep ":8080"
if [ $? -ne 0 ]
then
ps
-ef | grep Tomcat8080 | grep -v grep | awk '{print $2}' | xargs kill -9
sleep
3
/usr/local/Tomcat/Tomcat8080/bin/startup.sh
fi
#Tomcat8081
netstat -ntpl | grep ":8081"
if [ $? -ne 0 ]
then
ps
-ef | grep Tomcat8081 | grep -v grep | awk '{print $2}'
sleep
5
/usr/local/Tomcat/Tomcat8081/bin/startup.sh
fi
添加到定时任务:
[root@lzc shell]# crontab -l
*/1 * * * * /usr/bin/sh
/shell/keeptomcat.sh
2、Nginx安装部署:
1、 安装pcre
注:安装这个pcre库是为了让nginx支持HTTP
Rewrite模块
创建一个专用的软件工具目录(实际生产环境中一定要养成好的规范习惯)
下载pcre软件(Centos 6版本下载)
[root@lzc GZ]# wget
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
编译安装
[root@lzc GZ]# tar -xvf
pcre-8.38.tar.gz
[root@lzc GZ]# mv pcre-8.38 /usr/local/
[root@lzc GZ]# cd /usr/local/pcre-8.38
[root@lzc pcre-8.38]# ./configure
[root@lzc pcre-8.38]# make && make install
2、安装配置Nginx
>1、源码编译安装nginx
[root@lzc]# useradd nginx -s
/sbin/nologin -M
[root@lzc GZ]# wget
http://nginx.org/download/nginx-1.10.1.tar.gz
[root@lzc GZ]# tar zxf
nginx-1.10.1.tar.gz
[root@lzc GZ]# cd nginx-1.14.2/
[root@lzc GZ]# ./configure --user=nginx
--group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre=/usr/local/pcre-8.38
--without-http_gzip_module
[root@lzc GZ]# make && make
install
>2、配置启动nginx
[root@lzc
GZ]# cd /usr/local/nginx/
[root@lzc
nginx]# tree
├── conf #nginx配置文件
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── html #web项目代码
│ ├── 50x.html
│ └── index.html
├── logs #nginx日志
└── sbin #nginx启动文件
└── nginx
[root@lzc nginx]# ./sbin/nginx #启动nginx
[root@lzc nginx]# ps -ef | grep nginx #查看nginx进程
root
37276 1 0 15:20 ? 00:00:00 nginx: master process
./sbin/ngin
nginx
37277 37276 0 15:20 ? 00:00:00 nginx: worker process
root
37327 15908 0 15:22 pts/0 00:00:00 grep --color=auto nginx
[root@lzc
nginx]# netstat -ntpl | grep ":80" #查看nginx端口号
tcp 0
0 0.0.0.0:80
0.0.0.0:* LISTEN 37276/nginx: master
浏览器访问测试 http://ip地址
>3、配置nginx反向代理
[root@lzc conf]# vim
/usr/local/nginx/conf/nginx.conf #添加以下内容
#keepalive_timeout 0;
keepalive_timeout 65;
###############################################
upstream tomcat.lzc.com {
#定义主机池
server 192.168.10.102:8080
weight=1; #按权重的方式进行轮询、数值越大
server 192.168.10.102:8081
weight=1;
server 192.168.10.103:8080
weight=1;
server 192.168.10.103:8081
weight=1;
server 192.168.10.104:8080
weight=1;
server 192.168.10.104:8081
weight=1;
}
###############################################
#gzip
on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat.lzc.com; #将监听到请求转发到这个虚拟地址
root html;
index index.jsp index.html index.htm;
}
#保存退出
[root@lzc nginx]# ps -ef | grep nginx |
grep -v grep | awk '{print $2}' | xargs kill
-9 #杀死nginx进程
[root@lzc nginx]# ./sbin/nginx #启动nginx
Web页面正常访问到Tomcat项目
>4、扩展内容
关闭nginx:
[root@lzc nginx]# ps -ef | grep nginx |
grep -v grep | awk '{print $2}' | xars kill -9
启动nginx:
[root@lzc /]#
/usr/local/nginx/sbin/nginx
shell脚本进程守护:创建脚本
[root@lzc
shell]# more keepNginx.sh
#!/bin/bash
#脚本功能检测nginx进程是否存在
#如nginx进程不存在自动重启nginx
netstat -ntpl | grep ":80" |
grep nginx
if [ $? -ne 0 ]
then
ps
-ef | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9
sleep
3
cd
/
/usr/local/nginx/sbin/nginx
fi
添加到定时任务:每分钟执行一次
[root@lzc
shell]# crontab -l
*/1
* * * * /usr/bin/sh
/shell/keeptomcat.sh &>/dev/null
2>&1
*/1 * * * * /usr/bin/sh /shell/keepNginx.sh &>/dev/null 2>&1
3、Keepalived安装部署:
1、环境配置
>1、主Keepalived服务器IP地址 192.168.10.102
>2、备Keepalived服务器IP地址 192.168.10.103
>3、备Keepalived服务器IP地址 192.168.10.104
>4、Keepalived虚拟IP地址 192.168.10.200
2、yum安装keepablived
>1、环境说明:
主Keepalived服务器IP地址 192.168.10.102
备Keepalived服务器IP地址 192.168.10.103
备Keepalived服务器IP地址 192.168.10.104
Keepalived虚拟IP地址 192.168.10.200
>2、yum安装配置
[root@lzc /]# yum install openssl-devel
popt* -y
[root@lzc /]# yum install -y keepalived
修改配置文件(主)
[root@lzc /]# tree /etc/keepalived/
/etc/keepalived/
├── keepalived.conf
[root@lzc /]# vim
/etc/keepalived/keepalived.conf
修改配置文件(备)
[root@lzc /]# tree /etc/keepalived/
/etc/keepalived/
├── keepalived.conf
[root@lzc /]# vim
/etc/keepalived/keepalived.conf
#保存退出
>3、启动keepalived
[root@lzc /]# systemctl
enable keepalived.service #加入启动项
[root@lzc /]# systemctl
start keepalived.service #启动keepalived
[root@lzc /]# systemctl restart
keepalived.service #重启keepalived
[root@lzc /]# systemctl stop
keepalived.service #停止keepalived
>4、验证和测试
#正常ping
模拟故障手动stop服务器1(192.168.10.102)的keepalived服务
[root@lzc /]# systemctl stop
keepalived
成功切换到服务器3(192.168.10.104)
由于服务器2服务器3优先级都是99,两者同等的优先级。
Tomcat+nginx+Keepalived部署实现集群的更多相关文章
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- Nginx入门篇(七)之Nginx+keepalived高可用集群
一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...
- nginx Keepalived高可用集群
一.Keepalived高可用 1.简介 Keepalived软件起初是专为LvS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此, ...
- Keepalived+Nginx+Tomcat 实现高可用Web集群
https://www.jianshu.com/p/bc34f9101c5e Keepalived+Nginx+Tomcat 实现高可用Web集群 0.3912018.01.08 20:28:59字数 ...
- 同台电脑部署多组Tomcat负载均衡(或集群)
可能这种需求比较少见,不过如果手上服务器不够用.可以考虑先这么干着.. 具体Tomcat怎么搭集群,就不在这细说了.只写同台电脑部署多组集群需要修改和注意的地方. 一.Apache 先是Apache, ...
- 二进制安装部署kubernetes集群---超详细教程
本文收录在容器技术学习系列文章总目录 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的网盘中,需要的可以打赏博主一杯咖啡钱 ...
- docker 快速部署ES集群 spark集群
1) 拉下来 ES集群 spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...
- Keepalived高可用集群应用
Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...
- 二进制部署kubernetes集群(上篇)
1.实验架构 1.1.硬件环境 准备5台2c/2g/50g虚拟机,使用10.4.7.0/24 网络 .//因后期要直接向k8s交付java服务,因此运算节点需要4c8g.不交付服务,全部2c2g足够. ...
随机推荐
- OFD电子文档阅读器功能说明(采用WPF开发,永久免费)
特别说明 ofd阅读器开发语言为c#,具有完全自主产权,没有使用第三方ofd开发包.可以根据你的需求快速定制开发.本阅读器还在开发完善阶段,如有任何问题,可以联系我QQ:13712486.博客:htt ...
- 本人亲测-百度富文本编辑器(无bug版本)
再此我想说明一点,好多教程都是转载别人的,而且也不注明从哪里转载的.每次搜点资料的时候总是跟网上刷小视频的感觉一样.有些人就直接把别人的东西粘贴过来了,一点改动都没有. 废话不多说,直接上教程. (百 ...
- [洛谷P1062/NOIP2006普及组] 数列
首先题面是这样的: 给定一个正整数 k(3≤k≤15) ,把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当 k=3 时,这个序列是: 1,3,4,9,10,12,13,- ...
- 第六版PMBOK中工具与技术的介绍:数据收集数据分析数据表现
数据收集技术: 1.头脑风暴:收集关于项目方法的创意和解决方案.2.焦点小组:召集预定的相关方和主题专家,了解他们对所讨论的产品服务或成果的期望和态度.主持人引导大家互动式讨论.3.访谈:通过与相关方 ...
- python日记:用pytorch搭建一个简单的神经网络
最近在学习pytorch框架,给大家分享一个最最最最基本的用pytorch搭建神经网络并且训练的方法.本人是第一次写这种分享文章,希望对初学pytorch的朋友有所帮助! 一.任务 首先说下我们要搭建 ...
- PHPStorm IntelliJ IDEA 代码缩进风格设置
关于缩进风格,我还是觉得4空格比tab好 File -> Settings -> Editor -> Code Style: 如图,把Detect and use exsiting ...
- Java并发编程之线程池的使用
1. 为什么要使用多线程? 随着科技的进步,现在的电脑及服务器的处理器数量都比较多,以后可能会越来越多,比如我的工作电脑的处理器有8个,怎么查看呢? 计算机右键--属性--设备管理器,打开属性窗口,然 ...
- MySQL开发篇(5)索引、视图、触发器、SQL中的安全问题、SQL Mode、
一.索引 所有MySQL列类型都可以被索引,对相关列使用索引是提高SELECT操作性能的最佳途径.每种存储引擎(MyISAM.InnoDB.BDB.MEMORY等)对每个表至少支持16个索引,总索引长 ...
- Mac高效开发之iTerm2、Prezto和Solarized主题
本文首发于个人网站:Mac高效开发之iTerm2.Prezto和Solarized主题 工欲善其事必先利其器,作为开发,我追求极致的高效,因此会在很多细节上追求效率,例如:命令行窗口敲命令的时候,如果 ...
- 设计模式C++描述----03.工厂(Factory)模式
工厂模式属于创建型模式,大致可以分为三类,简单工厂模式.工厂方法模式.抽象工厂模式. 一. 简单工厂模式 简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品.当增加新的产品时,就需要 ...