Nginx作负载均衡器的优点许多,简单概括为:①实现了可弹性化的架构,在压力增大的时候可以临时添加tomcat服务器添加到这个架构里面去;②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器;而Keepalvied可保证单个nginx负载均衡器的有效性,避免单点故障,整个拓补如下:
nginx(主负载均衡器):192.168.1.106
nginx(从负载均衡器):192.168.1.107
VIP地址: 192.168.1.108
tomcat1的IP 192.168.1.102
tomcat2的IP 192.168.1.103
tomcat3的IP 192.168.1.105
布置整个环境用到的软件为:
apache-tomcat-6.0.20.tar.gz
jdk-6u16-linux-i586.bin
nginx-0.7.17.tar.gz
prce-7.7.tar.gz
①首先分别在3台tomcat主机上布置java环境,安装tomcat,具体步骤为:
apache-tomcat-6.0.tar.gz可在apache.org上下载,jdk-6u16-linux-i586.bin我是用文件挖掘者直接搜索下载的http://www.fdigg.net/search_jdk-6-linux-i586.htm。
第一步,安装java环境。
JDK的安装
#chmod +x jdk-6u16-linux-i586.bin
#./jdk-6u16-linux-i586.bin
到此JDK已经安装完成
建立符号链接
# ln -s /usr/local/jdk-1.6.0-16/bin/java /usr/bin/java
# ln -s /usr/local/jdk-1.6.0-16/bin/javac /usr/bin/javac
ln -s /usr/local/jdk-1.6.0-16 /usr/local/jdk
ln -s /usr/local/jdk-1.6.0-16/jre /usr/local/jre
TOMCAT的安装
#tar zxvf apache-tomcat-6.0.20.tar.gz
#mv apache-tomcat-6.0.20 /usr/local/tomcat
设置环境变量: vim /etc/rc.d/rc.local,以追加的形式添加如下内容
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
JRE_HOME=/usr/local/jre
export JRE_HOME
CLASSPATH=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin
export PATH
TOMCAT_HOME=/usr/local/tomcat
export TOMCAT_HOME
重启服务器,启动tomcat以检查是否存在错误:
#cd /usr/local/tomcat/bin
#./startup.sh
http://IP地址:8080 可以看到猫头:)成功了。
②分别在二台nginx负载均衡器上安装nginx及配置
下载及安装nginx:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
tar zxvf pcre-7.7.tar.gz
cd pcre-7.7/
./configure
make && make install
wget http://sysoev.ru/nginx/nginx-0.7.17.tar.gz
tar zxvf nginx-0.7.17.tar.gz
cd nginx-0.7.17/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
这里贴上nginx.conf配置文件,不加任何说明,方便用X-shell直接粘贴,很人性化的噢:)二个nginx负载均衡器的文件一样,配置完成后分别用/usr/local/nginx/sbin/nginx启动。
user nobody nobody;
worker_processes 1;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
upstream backend
{
server 192.168.1.102:8080;
server 192.168.1.103:8080;
server 192.168.1.105:8080;
}
server {
listen 80;
server_name www.yuhongchun027.com;
location / {
root /var/www ;
index index.jsp index.htm index.html;
proxy_redirect off;
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_pass http://backend;
}
#location /nginx {
#access_log on;
#auth_basic "NginxStatus";
#auth_basic_user_file /usr/local/nginx/htpasswd;
#}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/access.log access;
}
}
③在二台Nginx机上安装及配置keepalived,做双机互备。
#wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
#tar zxvf keepalived-1.1.15.tar.gz
#cd keepalived-1.1.15
#./configure
#make
#make install
将keepalived做成启动脚务,方便管理:
#cp /usr/local/etc/rc.d/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/
#service keepalived start|stop
在二台Nginx上,我分别贴出keepalived.conf配置文件,配置完成后分别用service keepalived start启动。检验keepalived是否成功可用命令ip a
vrrp_instance VI_INET1 {
state MASTER
interface eth0
virtual_router_id 53
priority 200
advert_int 1
authentication {
auth_type pass
auth_pass yourpass
}
virtual_ipaddress {
192.168.1.108
}
}
vrrp_instance VI_INET1 {
state BACKUP
interface eth0
virtual_router_id 53
priority 100
advert_int 1
authentication {
auth_type pass
auth_pass yourpass
}
virtual_ipaddress {
192.168.1.108
}
}
以上三步完成后,就是检测了,大家可任意停掉其中一台的任何服务;在正常结果中大家应该发现,其中任意一台服务器宕机后,不影响整个系统的运作。如对以上实验过程有疑问,欢迎来信交流yuhongchun027@163.com(抚琴煮酒)
分享到:
相关推荐
基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + ...
Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 Nginx是一款流行的开源Web服务器软件,具有...
本文档详细介绍了如何在Linux系统上通过编译安装的方式设置一个基于Keepalived和Nginx的双机互备负载均衡系统。 首先,确保系统已经安装了必要的编译工具和依赖库。在Ubuntu或Debian系统中,可以使用`apt-get`命令...
### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...
### Nginx负载均衡与Keepalived双机热备配置详解 #### 一、环境配置与准备工作 在介绍具体的配置步骤之前,我们首先需要明确一下本案例中的环境配置: - **负载均衡器**: - **LB主**:192.168.1.1 - **LB从**...
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...
在构建高性能、高可用性的Web服务环境中,"负载均衡nginx+tomcat+terracotta+nfs+mysql"是一个常见的架构组合。这个组合充分利用了各组件的优势,以实现数据的高效处理、分布式存储以及会话共享,确保系统的稳定性和...
在本教程中,我们将深入探讨如何在Linux环境中源码安装MySQL、MySQL主从复制、Nginx、Nginx负载均衡、Redis、PHP、phpredis以及Tomcat。这些技术是构建高效、可扩展的Web应用架构的基础。让我们逐一了解安装过程。 ...
配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...
"keepalived+nginx双机热备+负载均衡 非抢占模式"是一种常见的解决方案,它能够确保服务的连续性和效率。下面将详细介绍这个主题。 **Keepalived** Keepalived是一款基于VRRP(Virtual Router Redundancy Protocol...
本片详细记录了Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署过程,讲解十分到位,可作为线上实操手册。特在此分享,希望能帮助到有用到的朋友。
Nginx+PHP+MySQL+heartbeat 配置双机热备解决方案 本文档旨在介绍 Nginx+PHP+MySQL+heartbeat 配置双机热备解决方案,该方案旨在解决单点故障问题,提供高可用性和自动切换的解决方案。下面是该解决方案的详细介绍...
本文将详细介绍如何通过`Nginx+KeepAlived+Tomcat`构建一个稳定、高效的负载均衡架构。 #### 二、关键技术介绍 ##### 1. Nginx - **简介**:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)...
Maven Spring(IOC DI AOP 声明式事务处理) SpringMVC(支持Restful风格) ...Nginx静态加载、负载均衡 基于keepalived的nginx高可用方案 Tomcat集群(Redis共享Session) Sping Shiro权限控制(待完善)
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...
### 无标题Keepalived+Nginx+Tomcat+MySQL部署双机热备、负载均衡应用服务器 #### 配置概述 本文档旨在详细介绍如何在Linux环境下构建一套基于Keepalived、Nginx、Tomcat及MySQL的服务集群,实现双机热备与负载...
在构建高性能、高可用性的Web应用系统时,"nginx+tomcat7负载均衡+redis缓存session"是一种常见的架构模式。这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于...
在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...