keepalived+nginx+tomcat+redis集群环境部署
1.所需软件、jar包。配置文件下载:http://pan.baidu.com/s/1dFgntst
2.环境说明:
centos6.5 64位
主节点:192.168.40.121
副节点:192.168.40.122
公用的虚拟IP(VIP):192.168.40.123
安装keepalived和nginx前要先安装:
yum -y install gcc pcre-devel zlib-devel openssl-devel 这几个软件
3.keepalived安装部署:
参考帖子:
--> http://blog.csdn.net/xyang81/article/details/52554398
--> http://www.cnblogs.com/kevingrace/p/6138185.html
keepalived主要是用来做负载均衡和高可用的,这里是用来做高可用的,负载均衡用nginx
1)解压安装到/usr/local/src/后,进到keepalived目录下
./configure
make && make install
cp /usr/local/src/keepalived-1.3.2/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
2)设置keepalived开机启动
echo "/etc/init.d/keepalived start" >> /etc/rc.local
3)设置keepalived的虚拟主机(vip)
配置 /etc/keepalived/keepalived.conf
主节点(192.168.40.121):
! Configuration File for keepalived
vrrp_script chk_http_port {// 检测nginx服务是否在运行。有很多方式,比如进程,用脚本检测等等,这是使用脚本
script "/opt/chk_nginx.sh"
interval 2 间隔多少时间测试nginx
weight -5
fall 2 //连续2次失败才算失败
rise 1 //1次成功就算成功
}
vrrp_instance VI_1 {//vrrp实例定义块
state MASTER //主节点
interface eth0 //网卡
mcast_src_ip 192.168.40.121 //发送多播数据包时的源IP地址,这里注意了,这里实际上就是在哪个地址上发送VRRP通告,这个非常重要,一定要选择稳定的网卡端口来发送,
//这里相当于heartbeat的心跳端口,如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
virtual_router_id 51 //虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
priority 100 //最大的为主节点
advert_int 1 //设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { //设置验证类型和密码。主从必须一样
auth_type PASS //设置vrrp验证类型,主要有PASS和AH两种
auth_pass 1111 //设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { //虚拟主机设置
192.168.40.123
}
track_script { //执行监控的服务。注意这个设置不能紧挨着写在vrrp_script配置块的后面(实验中碰过的坑),否则nginx监控失效!!
chk_http_port
}
}
副节点(192.168.40.122):
! Configuration File for keepalived
vrrp_script chk_http_port {// 检测nginx服务是否在运行。有很多方式,比如进程,用脚本检测等等,这是使用脚本
script "/opt/chk_nginx.sh"
interval 2 间隔多少时间测试nginx
weight -5
fall 2 //连续2次失败才算失败
rise 1 //1次成功就算成功
}
vrrp_instance VI_1 {//vrrp实例定义块
state BACKUP //副节点
interface eth0 //网卡
mcast_src_ip 192.168.40.122 //发送多播数据包时的源IP地址,这里注意了,这里实际上就是在哪个地址上发送VRRP通告,这个非常重要,一定要选择稳定的网卡端口来发送,
//这里相当于heartbeat的心跳端口,如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
virtual_router_id 51 //虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
priority 90 //最大的为主节点
advert_int 1 //设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { //设置验证类型和密码。主从必须一样
auth_type PASS //设置vrrp验证类型,主要有PASS和AH两种
auth_pass 1111 //设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { //虚拟主机设置
192.168.40.123
}
track_script { //执行监控的服务。注意这个设置不能紧挨着写在vrrp_script配置块的后面(实验中碰过的坑),否则nginx监控失效!!
chk_http_port
}
}
4)编写监控脚本
vim /opt/chk_nginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/usr/local/nginx/sbin/nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/etc/init.d/keepalived stop
fi
fi
chmod 755 /opt/chk_nginx.sh
sh /opt/chk_nginx.sh(或 /bin/sh /opt/chk_nginx.sh)
5)分别启动keepalived
/etc/init.d/keepalived start(stop)
4.nginx安装部署
参考帖子:
--> http://www.cnblogs.com/hunttown/p/5759959.html
nginx是一个反向代理服务器,主要用来做负载均衡,静态服务器(静态分离,将静态文件存放在nginx服务器)
1)解压安装nginx后,进入nginx目录:
2)./configure --prefix=/usr/local/nginx
3)make && make install
4)设置nginx开机启动
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
5)配置nginx.conf(主从节点配置一样)
#user nobody;
worker_processes 1; //跟cpu核数一样 #error_log logs/error.log; //错误日记 #pid logs/nginx.pid; //进程pid文件
events {
worker_connections 1024; //进程连接数
}
//http服务器
http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65;// 长连接请求时间 #gzip on;
//负载均衡配置
upstream core {
server 192.168.40.122:8081 weight=1;
server 192.168.40.121:8080 weight=1;
} //负载均衡有4种配置方式
//1.轮询 主要是根据请求时间的前后进行请求分配
//2.比重 设置weight通过比重分配
//3.ip_hash 根据请求ip的hash值分配,同一个ip请求同一个服务器
//4.fair(第三方) 根据服务器请求时间进行分配
//虚拟主机配置
server {
listen 8088;
server_name 192.168.40.121; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://core;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
#root html;
#index index.html index.htm;
}
#error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
6) /usr/local/nginx/sbin/nginx 启动nginx(nginx -s reload/stop)
5.redis安装部署
1)下载redis需要的三个jar包,放到tomcat的lib包下面
2)修改tomcat的conf包下面的context.xml文件
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="10.10.49.20" // redis安装所在节点的ip地址
port="6379"
database="0"
maxInactiveInterval="60" />
</Context>
3)修改redis.conf,将redis改为后台启动
daemonize yes
4)启动redis
/src/reids-server ./redis.conf
/src/redis-cli
5) 退出redis
/src/redis-cli shutdown
keepalived+nginx+tomcat+redis集群环境部署的更多相关文章
- Nginx+tomcat+redis集群共享session实现负载均衡
1.nginx是一款轻量级兼备高性能的Http和反向代理服务器.所谓反向代理就是指用户发起访问请求,由代理服务器接受,然后将请求转发给正式服务器,并且将正式服务器处理完的数据返回给客户单,此时代理服务 ...
- Nginx+tomcat+redis 集群session共享
插件资源下载地址:https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/tag/2.0.2 一.前置条件 J ...
- Centos7下ELK+Redis日志分析平台的集群环境部署记录
之前的文档介绍了ELK架构的基础知识,日志集中分析系统的实施方案:- ELK+Redis- ELK+Filebeat - ELK+Filebeat+Redis- ELK+Filebeat+Kafka+ ...
- nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710
转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...
- Redis集群的部署
Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程 首先配置Ma ...
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
- Nginx+Tomcat+MemCached 集群配置手册
系统实施文档 Nginx+Tomcat+MemCached 集群配置手册 目 录 第1章 概述 1.1 目标 互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架 ...
- kafka 基础知识梳理及集群环境部署记录
一.kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特 ...
- 带你自行搭建虚拟机和Redis集群环境,值得收藏!
前言: 我们看到分析 Redis 使用或原理的文章不少,但是完整搭建一套独立的 redis 集群环境的介绍,并不是很多或者说还不够详细. 那么,本文会手把手带着大家搭建一套 Redis 集群环境,Re ...
随机推荐
- python-ceilometerclient命令行(2)
命令行解析工具argparse argparse是python标准库中的模块,利用argparse,可以完成对命令行的参数定义.解析以及后续的处理.一个简单的例子: # coding:utf-8 im ...
- SpringBoot点滴(1)
spring boot 注意事项 1.项目启动的主类,放置位置在所有类的外层与controller,dao,service,util,entity同层,SpringBoot会自动扫描@SpringBo ...
- Python之 ---成员修饰符
一:成员修饰符:分为共有成员和私有成员: 私有成员:__通过两个下滑线:无法直接访问,要访问只能间接访问: 如下我们定义了一个对象,里面有两个共有的成员变量,成员变量是共有的时候我们可以外部访问,如果 ...
- 外购半成品报SHORT问题(非验货客户)
外购半成品报SHORT问题(验货客户)https://www.cnblogs.com/Snowfun/p/8660646.html 下面看非验货客户: 1.检查采购类型是否为F(SAP_MARC),为 ...
- 解题5(StringMerge1)
题目描述 按照指定规则对输入的字符串进行处理. 详细描述: 将输入的两个字符串合并. 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序.这里的下标意思是字符在字符串 ...
- Struts2学习资料
Struts2入门示例教程 http://blog.csdn.net/wwwgeyang777/article/details/19078545 Struts2工作原理 http://blog ...
- 调试JS代码的神器
1.火狐浏览器的 “Web开发者” 可以打断点,实时查看当前值 2.谷歌浏览器的“开发者工具” 可以打断点,实时查看当前值
- jenkin、SVN、archery集成openLDAP
jenkins: 1.下载.安装插件 LDAP .Matrix Authorization Strategy 2. 系统管理 —> 全局安全配置 点击 启用安全,并且选择 LDAP 认证,这里有 ...
- python数据分析之matplotlib学习
本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 类MATLAB API 最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数. from p ...
- Example of Formalising a Grammar for use with Lex & Yacc
Here is a sample of a data-file that we want to try and recognise. It is a list of students and info ...