`
ynp
  • 浏览: 437280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx双机高可用及Tomcat集群负载均衡

阅读更多
nginx双机高可用及Tomcat集群负载均衡

********试验环境及常用命令********************
---》试验机器
192.188.32.83 tomcat1
192.188.32.55 tomcat2

---》nginx linux下安装
参考 http://limaoyuan.iteye.com/blog/904352

注意:其实把pcre-devel-7.8-3.1.el6.i686.rpm(在cd安装盘上找)安装过去就能正确编译。
---》tomcat 安装(略)

---》启动关闭tomcat服务器
/usr/local/apache-tomcat-6.0.32/bin/startup.sh
/usr/local/apache-tomcat-6.0.32/bin/shutdown.sh
---》配置nginx文件
vi /usr/local/nginx/conf/nginx.conf
---》启动nginx
/usr/local/nginx/sbin/nginx
---》关闭nginx
关闭nginx
[root@LinuxTest sbin]# ps -ef |grep nginx
root      3462     1  0 13:07 ?        00:00:00 nginx: master process ./nginx
nobody    3463  3462  0 13:07 ?        00:00:00 nginx: worker process
root      3467 31523  0 13:08 pts/1    00:00:00 grep nginx
[root@LinuxTest sbin]# kill 3462

******单nginx 配置tomcat集群(单机)负载均衡************
参考:http://ari.iteye.com/blog/833153

******单nginx 配置tomcat集群(多机器)负载均衡**********
---》分别在两台试验机器上Tomcat web服务器
  分别修改两套tomcat的ROOT/index.html ,在<body>中加入
<h2>from tomcat1: 192.188.32.83</h2> 
<h2>from tomcat2: 192.188.32.85</h2>
便于观察。

---》在192.188.32.83上部署nginx ,配置参考

#user  nobody;
user root root;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue  
    use epoll;
    worker_connections  1024;
}


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 tomcat {
        server 192.188.32.83:8080;
        server 192.188.32.55:8080;
    }

    server {
        listen       80;
        server_name  192.188.32.83;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
      root   html;
      index  index.html index.htm;
      proxy_pass   http://tomcat;
      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;
      client_max_body_size   10m;
      client_body_buffer_size   128k;
      proxy_connect_timeout   90;
      proxy_send_timeout   90;
      proxy_read_timeout   90;
      proxy_buffer_size   4k;
      proxy_buffers   4 32k;
      proxy_busy_buffers_size   64k;
      proxy_temp_file_write_size  64k;
        }

        #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;
        }
    }
}

---》测试
测试一:启动 nginx\tomcat1\tomcat2
访问http://192.188.32.83/ 观察,会轮询83和85两台服务器。
测试二:关闭 tomcat1
访问http://192.188.32.83/ 观察,能正常访问85web服务器。
测试三:启动tomcat1
访问http://192.188.32.83/ 观察,会轮询83和85两台服务器。
测试四:关闭tomcat2 结果参考上述步骤

******双机nginx 配置tomcat集群(多机器)负载均衡**********
单nginx 配置tomcat集群(单机)负载均衡、单nginx 配置tomcat集群(多机器)负载均衡
缺陷是高度依赖负载均衡服务器,负载均衡服务器故障会导致整个网络无法访问,所以考虑把负载均衡服务器也做成双机高可用。

--》方案
采用 linux虚拟ip(ip漂移技术)实现Nginx双机高可用。下述为虚拟ip阐述了ip虚拟技术:

通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。
在分配IP地址时,要分清工作IP地址和主机自由地址。如在主从方式、单网卡的情况下,主机一地址为200.10.10.1,主机二的地址为200.10.10.2,工作地址为200.10.10.3,正常情况下,工作主机的自由地址是被工作地址取代的(若主机一在工作,主机一得地址由200.10.10.1变为200.10.10.3)。在发生主机切换的情况下,主机一的地址恢复为200.10.10.1,而主机二的地址会由200.10.10.2变为200.10.10.3,这就是地址漂移。

网卡上增加一个IP:
/sbin/ifconfig eth0:1 192.168.3.104 netmask 255.255.255.0
/sbin/route add -host 192.168.3.104 dev eth0:1
删除网卡的第二个IP地址:
ip addr del 192.168.0.1 dev eth0

---》分别给两台服务器配置虚拟ip
两台机器的虚拟ip定为 192.188.32.81

***32.83添加虚拟ip
/sbin/ifconfig eth1:1 192.188.32.81 netmask 255.255.255.0
/sbin/route add -host 192.188.32.81 dev eth1:1

***32.85添加虚拟ip
/sbin/ifconfig eth0:1 192.188.32.81 netmask 255.255.255.0
/sbin/route add -host 192.188.32.81 dev eth0:1

--》分别安装nginx和tomcat

---》nginx配置参考

#user  nobody;
user root root;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue  
    use epoll;
    worker_connections  1024;
}


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 tomcat {
        server 192.188.32.83:8080;
        server 192.188.32.55:8080;
    }

    server {
        listen       80;
#####需要修改的地方###
        server_name  192.188.32.81;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
      root   html;
      index  index.html index.htm;
      proxy_pass   http://tomcat;
      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;
      client_max_body_size   10m;
      client_body_buffer_size   128k;
      proxy_connect_timeout   90;
      proxy_send_timeout   90;
      proxy_read_timeout   90;
      proxy_buffer_size   4k;
      proxy_buffers   4 32k;
      proxy_busy_buffers_size   64k;
      proxy_temp_file_write_size  64k;
        }

        #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;
        }
    }
}

---》测试
测试1:启动两台tomcat、nginx,访问 http://192.188.32.81/,结果能正常访问;
测试2:关闭某一台nginx,访问 http://192.188.32.81/,结果能正常访问;
(可以关闭nginx,或删除虚拟ip模拟服务器故障情况)

**删除83上的虚拟ip
ip addr del 192.188.32.81 dev eth1
**删除55上的虚拟ip
ip addr del 192.188.32.81 dev eth0

参考:
http://limaoyuan.iteye.com/blog/904352
http://ari.iteye.com/blog/833153
http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html
http://www.php100.com/html/program/nginx/2013/0905/5525.html
分享到:
评论

相关推荐

    Nginx+tomcat配置集群负载均衡实例

    配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...

    Nginx+tomcat配置集群负载均衡

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"**Nginx+Tomcat配置集群负载均衡**"就是实现这一目标的一种常见方案。Nginx是一款高性能的反向代理服务器,常用于处理静态资源和进行负载均衡;Tomcat则是...

    nginx的安装及tomcat集群负载均衡配置

    ### Nginx与Tomcat集群负载均衡配置详解 #### Nginx 安装与配置 **一、Nginx 在 Windows 下的安装** 1. **下载与解压** 下载 Nginx 的稳定版(例如 nginx-1.12.1.tar.gz),将其解压缩到 D:\ 目录下。 2. **...

    Nginx入门到精通搭建高可用集群负载均衡

    - **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,需要准备好服务器、软件包和网络环境。服务器方面,...

    Nginx + Memcached + Tomcat 集群负载均衡

    标题 "Nginx + ...以上知识点涵盖了Nginx、Memcached和Tomcat集群负载均衡的基本原理和实践,对于构建高可用、高性能的Web服务具有重要意义。理解并熟练掌握这些技术,对于提升大型Web应用的运维能力至关重要。

    Nginx实现tomcat与weblogic集群的负载均衡及故障处理

    总之,通过Nginx实现Tomcat和WebLogic集群的负载均衡,不仅可以提高系统的可用性和响应速度,还能有效应对高并发访问。结合合理的故障处理机制和性能调优策略,可以构建出稳定且高效的Web服务架构。

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...

    Nginx+Tomcat 负载均衡 3分钟搞定

    "Nginx+Tomcat 负载均衡 3分钟搞定" 本文将从以下几个方面详细介绍 Nginx+Tomcat 实现负载均衡的知识点: 一、负载均衡的概念和优势 负载均衡(Load Balancing)是指在多台服务器之间分配工作负载,以提高响应...

    Nginx与tomcat 负载均衡

    Nginx与Tomcat的负载均衡是指通过Nginx服务器来实现Tomcat集群的负载均衡,以提高系统的高性能和可扩展性。下面是实现负载均衡的详细步骤和知识点: 一、环境准备 * Nginx 1.8.0 * Apache Tomcat 6.0.33 二、目标...

    nginx负载均衡 nginx+tomcat tomcat实现负责均衡

    ### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...

    Nginx+Tomcat高性能负载均衡集群搭建(模板).zip

    本教程将深入探讨如何利用Nginx实现对Tomcat的负载均衡,构建一个高可用的集群。 首先,理解负载均衡的基本概念至关重要。负载均衡是一种技术,通过分散网络流量到多个服务器,确保单个服务器不会过载,提高系统...

    实现基于nginx的tomcat负载均衡和集群配置

    总结来说,通过Nginx实现基于Tomcat的负载均衡和集群配置,可以有效提高Web服务的可用性、响应速度和扩展性。这不仅降低了单点故障的风险,还能够根据服务器性能动态调整请求分配,从而优化资源利用。在实际部署中,...

    Keepalived+Nginx实现高可用Web负载均衡

    其中一种常见的方案是使用Keepalived与Nginx结合实现Web服务的负载均衡及高可用性。 #### Keepalived简介 Keepalived是一种基于VRRP协议的高性能服务器高可用性解决方案。它能够检测服务器故障并在出现故障时快速...

    Windows+Nginx+Tomcat搭建负载均衡和集群的tomcat压缩包

    5. **集群高可用性**:为了提高系统的健壮性,可以考虑在每个Tomcat实例上启用session复制或使用粘性会话。这样,当某个Tomcat节点故障时,其已有的会话数据能被其他节点接管,避免用户被迫重新登录。 6. **负载...

    Tomcat 集群负载均衡

    然而,单一的Tomcat实例可能无法满足高并发场景下的需求,这时就需要引入集群和负载均衡的概念。本文将深入探讨如何搭建Tomcat集群并实现负载均衡。 首先,理解“Tomcat集群”是指通过多台独立的Tomcat服务器共同...

    Nginx+Tomcat负载均衡企业实战.docx

    本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等方面的内容。 一、从 0 开始构建 Nginx...

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录 Keepalived 是一种高可用性解决方案,可以与 Nginx 和 Tomcat 配合使用来实现高可用集群。下面是 Keepalived+Nginx+Tomcat 高可用集群搭建的实战记录。 ...

    Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现

    本教程将探讨如何在Windows环境下,利用Nginx作为反向代理和负载均衡器,与Tomcat应用服务器配合,搭建一个负载均衡和集群环境。这种配置能够提升系统的稳定性和处理能力,确保即使在服务器压力大的情况下,也能为...

    nginx+tomcat集群部署与负载均衡

    为了实现高可用性和负载均衡,可以配置多个Tomcat服务器实例,并使用Nginx将请求分发到这些服务器上。 1. **下载并安装多个Tomcat实例**:按照上述步骤分别下载和安装多个Tomcat实例,确保每个实例的端口号不同。 ...

Global site tag (gtag.js) - Google Analytics