- 浏览: 523397 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (422)
- 重要 (12)
- BUG解决备忘录 (32)
- 环境搭建 (17)
- 开源组件 (4)
- 数据库 (16)
- 设计模式 (4)
- 测试 (3)
- javascript (5)
- Android (14)
- jdk相关 (9)
- struts2 (10)
- freemark (3)
- 自定义扩展及工具类 (5)
- jdk5新特性及java基础 (13)
- ssh及其他框架 (15)
- linux (32)
- tcp-ip http协议 (8)
- 服务器集群与负载均衡 (34)
- 项目管理相关 (11)
- 实用小技术 (10)
- 架构相关 (14)
- firefox组件 (11)
- spider (6)
- 产品设计 (11)
- PHP (1)
- ws (4)
- lucene (10)
- 其他 (2)
- BI (1)
- NoSQL (3)
- gzip (1)
- ext (4)
- db (6)
- socket (1)
- 源码阅读 (2)
- NIO (2)
- 图片处理 (1)
- java 环境 (2)
- 项目管理 (4)
- 从程序员到项目经理(一):没有捷径 (1)
- bug (1)
- JAVA BASE (8)
- 技术原理 (0)
- 新框架新技术 (1)
- 量化与python (1)
- 系统编程 (0)
- C语言 (0)
- 汇编 (0)
- 算法 (0)
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
环境说明:
nginx1: 192.168.2.47 nginx2: 192.168.2.48 tomcat1: 192.168.2.49 tomcat2: 192.168.2.50 vip: 192.168.2.51
一.Nginx配置
1.安装Nginx所需pcre库
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz
tar - zxvf pcre- 8.10 .tar .gz cd pcre- 8.10 ./ configure make make install
2.安装Nginx
wget http://nginx.org/download/nginx-0.8.52.tar.gz
groupadd www useradd - g www www tar zxvf nginx- 0.8.52.tar .gz cd nginx- 0.8.52/ ./ configure -- user= www -- group= www -- prefix=/ usr/ local/ nginx -- with- http_stub_status_module -- with- http_ssl_module make make install
注:如果出现以下错误
./ configure: error: SSL modules require the OpenSSL library. Centos 需要安装openssl- devel Ubuntu则需要安装: sudo apt- get install libssl- dev
3.修改配置文件为以下内容:
user www www; worker_processes 2 ; pid logs/ nginx.pid ; worker_rlimit_nofile 51200 ; events { use epoll; worker_connections 51200 ; } http { include mime.types ; default_type application/ octet- stream; keepalive_timeout 120 ; server_tokens off; send_timeout 60 ; tcp_nodelay on; upstream tomcats { server 192.168.2.50: 8080 ; server 192.168.2.49: 8080 ; #ip_hash; #在没有做共享session的情况下ip_hash可以解决session问题 } server { listen 80 ; server_name 192.168.2.48; location / { proxy_pass http: //tomcats; proxy_set_header Host $host; proxy_set_header X- Real- IP $remote_addr; proxy_set_header X- Forwarded- For $proxy_add_x_forwarded_for; } log_format access_log '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; access_log / usr/ local/ nginx/ logs/ access.log access_log; } }
4.测试配置文件
/ usr/ local/ nginx/ sbin/ nginx - t
如果出现以下情况
/ usr/ local/ nginx/ sbin/ nginx: error while loading shared libraries: libpcre.so .0: or directory
解决方法:
sudo ln - s / usr/ local/ lib/ libpcre.so .0 / usr/ lib/ libpcre.so .0
/usr/local/nginx/sbin/nginx -t
显示以下信息为正确的
the configuration file / usr/ local/ nginx/ conf/ nginx.conf syntax is ok configuration file / usr/ local/ nginx/ conf/ nginx.conf test is successful
5.优化内核参数
vim /etc/sysctl.conf在最后添加
net.ipv4 .tcp_max_syn_backlog = 65536 net.core .netdev_max_backlog = 32768 net.core .somaxconn = 32768 net.core .wmem_default = 8388608 net.core .rmem_default = 8388608 net.core .rmem_max = 16777216 net.core .wmem_max = 16777216 net.ipv4 .tcp_timestamps = 0 net.ipv4 .tcp_synack_retries = 2 net.ipv4 .tcp_syn_retries = 2 net.ipv4 .tcp_tw_recycle = 1 net.ipv4 .tcp_tw_reuse = 1 net.ipv4 .tcp_mem = 94500000 915000000 927000000 net.ipv4 .tcp_max_orphans = 3276800 net.ipv4 .ip_local_port_range = 1024 65535
保存退出后执行
sysctl -
p
6.切割Nginx日志脚本
#!/ bin/ bash PATH_LOGS= "/usr/local/nginx/logs" YEAR= `date - d "-1 days" + "%Y" ` MONTH= `date - d "-1 days" + "%m" ` mkdir - p $PATH_LOGS/ $YEAR/ $MONTH mv $PATH_LOGS/ access.log $PATH_LOGS/ $YEAR/ $MONTH/ access_$( date - d "-1 days" + "%Y%m%d" ) .log kill - USR1 `cat $PATH_LOGS/ nginx.pid `
把该脚本加到crontab每天00点执行
注:备机的Nginx和以上安装步骤一样
二.安装配置Keepalived
1.下载所需要的软件
wget http://keepalived.org/software/keepalived-1.1.19.tar.gz
wget http://rpm5.org/files/popt/popt-1.16.tar.gz
2.安装popt
编译keepalived时需要popt,否则会报以下错误:
configure: error: Popt libraries is required
tar - zxvf popt- 1.16 .tar .gz cd popt- 1.16 ./ configure make make install
3.安装keepalived
tar - zxvf keepalived- 1.1.19.tar .gz cd keepalived- 1.1.19 ./ configure -- prefix=/ usr/ local/ keepalived make make install
4.修改配置文件为以下内容:
vim /usr/local/keepalived/etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/root/scripts/monitor_nginx.sh" #根据自己的实际路径放置monitor_nginx.sh interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1234 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.51 } }
注:monitor_nginx.sh为监控nginx进程的脚本,内容如下
#!/ bin/ bash if [ "$(ps -ef | grep " nginx: master process"| grep -v grep )" == "" ] then / usr/ local/ nginx/ sbin/ nginx sleep 5 if [ "$(ps -ef | grep " nginx: master process"| grep -v grep )" == "" ] then killall keepalived fi fi
5.启动keepalived
/ usr/ local/ keepalived/ sbin/ keepalived - D - f / usr/ local/ keepalived/ etc/ keepalived/ keepalived.conf
注:备机的keepalived的安装和上面一样,只要把配置文件改为以下(把MASTER改为BACKUP)
! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/root/scripts/monitor_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP #改为BACKUP interface eth0 virtual_router_id 51 priority 100 #比MASTER数值要低 advert_int 1 authentication { auth_type PASS auth_pass 1234 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.51 } }
三.测试步骤
1. 访问VIP看是否能够正常访问后端的tomcat
2. 停止其中一个tomcat看是否能将访问转到另一台上
3. 停止两台nginx上任何一个nginx进程看监控进程脚本是否会自动启动nginx
4. 停止任何一台nginx上的keepalived进程看另一台是否接管vip
比如停止Master上的keepalived,例如如下killall keepalived,查看BACKUP机器是否已经接管,如果BACKUP接管后,BACKUP机器日志会是出下情况
tail /var/log/syslog
Keepalived_vrrp: VRRP_Instance( VI_1) Transition to MASTER STATE Keepalived_vrrp: VRRP_Instance( VI_1) Entering MASTER STATE Keepalived_vrrp: VRRP_Instance( VI_1) setting protocol VIPs. Keepalived_vrrp : VRRP_Instance( VI_1) Sending gratuitous ARPs on eth0 for 192.168.2.51
MASTER机器上日志会显示
Keepalived_vrrp: Terminating VRRP child process on signal Keepalived_vrrp: VRRP_Instance( VI_1) removing protocol VIPs.
现在把MASTER上的Keepalived重新启动,会看到MASTER重新接管VIP,并对外提供服务,BACKUP仍旧回到BACKUP STATE,如果不是这种情况,请检查配置文件和步骤.
现在的BACKUP日志如下:
Keepalived_vrrp: VRRP_Instance( VI_1) Received higher prio advert Keepalived_vrrp: VRRP_Instance( VI_1) Entering BACKUP STATE Keepalived_vrrp: VRRP_Instance( VI_1) removing protocol VIPs.
Master日志如下:
Keepalived_vrrp: VRRP_Script( Monitor_Nginx) succeeded Keepalived_vrrp: VRRP_Instance( VI_1) Transition to MASTER STATE Keepalived_vrrp: VRRP_Instance( VI_1) Entering MASTER STATE Keepalived_vrrp: VRRP_Instance( VI_1) setting protocol VIPs. Keepalived_vrrp : VRRP_Instance( VI_1) Sending gratuitous ARPs on eth0 for 192.168.2.51
发表评论
-
Spring + iBatis 的多库横向切分简易解决思路2
2011-12-26 16:43 2095Table of Contents I. 向Co ... -
Spring + iBatis 的多库横向切分简易解决思路
2011-12-26 16:36 11711.引言 笔者最近在做一个互联网的“类SNS” ... -
tomcat端口被长时间连接,CPU使用率高的原因分析
2011-11-20 23:50 1086tomcat使用的是电脑的80端口。 当客户端访问的 ... -
JVM Java HeapSpace到达临界值的高CPU问题
2011-11-10 19:27 1115本周有同事反馈,IDC环 ... -
java profile【cpu负载过高】
2011-11-10 17:58 1140问题描述: cpu负载陡增,内存占用情况稳定。(在多cpu ... -
mongodb查询
2011-09-03 13:42 1061#查询 查询 name = "bruce&qu ... -
MySQL 6.0 集群(cluster)+复制(replicate)
2011-05-05 02:08 1489http://www.net5 . 简介 本 ... -
centos下MySQL主从同步配置
2011-05-05 00:38 1052一、环境 主机: ... -
HadHoop分布式框架配置(二)
2011-03-16 21:42 1171我们假定,你已经下 ... -
HadHoop分布式框架简介(一)
2011-03-16 21:42 1495分布式系统基本原理 分布式系统被设计成可以存 ... -
Linux网管日记(9):Linux的前世今生
2011-03-13 16:00 8791.Linux的前世 地球人 ... -
网络管理员日记(8)里应外合:Linux下的后门和日志工具
2011-03-13 15:59 1098攻入Linux系统后,很多入侵者往往就开始得意忘形了。这其中还 ... -
Linux网络管理员日记(7)更上一层楼:Linux服务器的安全实践
2011-03-13 15:58 1003网络安全实践中,防火 ... -
Linux网络管理员日记(6)Linux邮件服务器的安装和安全
2011-03-13 15:57 1509四、更简单高效:Linux 邮件服务器的安装和安全 在 ... -
Linux管理员日记(5) 更简单高效:Linux邮件服务器的安装和安全
2011-03-13 15:54 1168在网络管理员的日常工作中,邮件服务器扮演着一个非常重要的角色, ... -
Linux管理日记(4)——免费而稳定:Web服务器和FTP服务器的安装
2011-03-13 15:53 1267为什么要采用Linux操作系统作为网络服务器?答案是:稳定性高 ... -
Linux管理员日记连载(3)简单易操作:类似Windows控制面板的Webmin
2011-03-13 15:52 1231安装完Linux操作系统后 ... -
Linux管理员日记连载(2)——Linux系统下的设备和文件配置
2011-03-13 15:51 1002新建一个虚拟机后,除 ... -
Linux管理员日记(1)——Linux服务器傻瓜式安装完全手册
2011-03-13 15:50 2008内容简介 从桌面到服务器,从 ... -
Samba服务器的安装配置和应用
2011-03-12 14:34 1146随着计算机网络的发展 ...
相关推荐
Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
"keepalived+nginx双机热备+负载均衡 非抢占模式"是一种常见的解决方案,它能够确保服务的连续性和效率。下面将详细介绍这个主题。 **Keepalived** Keepalived是一款基于VRRP(Virtual Router Redundancy Protocol...
### 无标题Keepalived+Nginx+Tomcat+MySQL部署双机热备、负载均衡应用服务器 #### 配置概述 本文档旨在详细介绍如何在Linux环境下构建一套基于Keepalived、Nginx、Tomcat及MySQL的服务集群,实现双机热备与负载...
Nginx+keepalived+tomcat实现性负载均衡 Nginx 是一个轻量级的Web服务器,keepalived 是一个高可用性解决方案,tomcat 是一个java应用服务器,三者结合可以实现高可用性和负载均衡。 负载均衡 负载均衡(Load ...
本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器进行热备份,至少包含两台热备的负载调度器,两...
本文介绍了如何利用Nginx和Keepalived搭建一个高可用的负载均衡系统。在此方案中,Nginx扮演Web服务器和负载均衡器的角色,而Keepalived则用于提供高可用性支持。以下是相关知识点的详细说明: 1. Nginx简介: ...
- Keepalived是一款免费开源的高可用解决方案软件,常用于构建双机热备环境。 - 主要功能包括健康检查、故障转移等。 2. **安装与配置** - **下载**:访问官方网站 http://keepalived.org/ 下载最新版本的...
本文档将详细介绍如何在 Linux 系统上部署 nginx、LVS 以及 Keepalived,构建一个高可用且负载均衡的服务集群。通过这种方式,不仅可以提高服务的稳定性和性能,还能实现服务的自动故障转移。 #### 二、环境准备 -...
keepalived+nginx+tomcat+redis+mysql所需的包,里面包含了三个tomcat与Redis做session共享的jar,编译安装Mysql所需要Boost库和Cmake的包。
nginx+keepalived做前端双机热备,后端tomcat做负载均衡。有前置nginx的proxy_pass将location做动静分离后的jsp等jsp程序文件分发到后端upstreamd模块中tomcat集群上,将静态html网页、图片、js、css等使用前端nginx...
在实际部署中,通常会有两台Nginx服务器(一主一备)和两台Tomcat服务器,形成双机热备的高可用环境,确保任何一台服务器的故障都不会影响服务的正常运行。 **1.2.5 安装keepalived** 要在主备Nginx服务器上实现...
- 使用Nginx作为反向代理,实现对Tomcat集群的负载均衡,进一步提升应用的响应速度和可扩展性。 4. **NFS提供共享存储**: - 配置NFS服务,为系统中的各个组件提供统一的数据存储解决方案,确保数据的一致性和...
第七章 keepalived双机热备:keepalived是为LVS提供高可用性的工具,它可以监控服务器状态并在主服务器失效时自动切换到备份服务器。学习这部分,你可以理解keepalived的配置、VRRP协议以及它如何确保服务的连续性。...
13、 部署方面使用LVS + keepalived + Nginx实现了双机主备、双主热备,实现了一个高可用的系统架构。 14、 项目开发采用团队式的开发,统一使用Maven私服构建项目,使用统一的SVN服务进行代码的管理。 【课程内容...