`
TableMiao
  • 浏览: 75036 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx+tomcat负载均衡集群(二)

阅读更多

nginx+tomcat负载均衡集群(二)

 

一、安装nginx

大同小异,主要有几步

1.下载安装包(http://nginx.org/en/download.html) nginx-1.8.0.tar.gz

2.解压  tar - zxvf nginx-1.8.0.tar.gz

3.cd 解压目录下 nginx-1.8.0

4.配置安装目录及附带信息 ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.32(这里附带了一个pcre 可以下载一个,少东西了编译的时候回报错,缺什么补什么就可以了,直接下载包、或用yum命令都可以)

5.编译 make

6.加载、运行 make install

    安装完之后,通用命令可以查看一下版本 rpm -qa|grep nginx

    启动nginx: cdcd /usr/local/nginx/sbin目录 nginx  就启动了(若提示无命令,按提示安装或 yum install nginx)    默认端口为80,访问http://address address为你的ip,本机即为localhost 出现 nginx 信息 即成功。

eg:


 

 

二、部署tomcat

  简单的部署一个web项目,加入一个test.jsp页面即可。里面的内容就加入后台的输出、前台页面显示,如:

 

  访问该test.jsp  成功如下:

 

三、负载均衡集群实现

 

    粗略解释:如图、客户端发送请求,先由nginx监听,转发给后端的tomcat,减轻单个tomcat压力,亦可保证单个tomcat挂了之后,用户请求会由其它的tomcat处理。

 

3.1打开nginx的配置文件nginx.conf

      一般在安装目录下,不确定哪个的话使用命令 nginx -t。如:



 

该命令是检测加载的配置文件是否有错误,其中就有配置文件的路劲。

之后修改配置文件之后,重新加载命令  nginx -s reload

 

打开之后找到

server {

  listen       80;
  server_name  localhost;

  #charset koi8-r;
  #access_log  logs/host.access.log  main;

  location / {

      root   html;
      index  index.html index.htm;
  
   …………
  }

 

listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

 

修改为:

server {

        listen       80;
        server_name  192.168.1.60;

       location / {
              proxy_pass http://192.168.1.60:8080;
          }

    ………

 }

 

表示 访问80端口后通过nginx转发到http://192.168.1.60:8080下;即第二步中部署的tomcat中。成功如下:


 

tomcat访问的是8080 此时通过nginx监听80端口转发到tomcat下得到响应。

 

3.2负载均衡实现多个tomcat分担请求

   3.2.1 再次部署两个tomcat 通过cp命令即可。修改各自端口和tomcattest.jsp的输出值,部署好之后,与第二步中一致。

   比如修改为:

      tomcat1  startup端口 8080  shutdown端口 8085    test.jsp输出为===tomcat111111===

      tomcat2  startup端口 8081  shutdown端口 28085  test.jsp输出为===tomcat222222===

      tomcat3  startup端口 8082  shutdown端口 38085  test.jsp输出为===tomcat333333===

 

   3.2.2修改nginx的配置文件

 

    #负载均衡配置   

    #轮询

    

    upstream local_tomcat {

        server 192.168.1.60:8080 weight=1; 

        server 192.168.1.60:8081 weight=1;

        server 192.168.1.60:8082  backup;

    }

  server {

        listen       80;
        server_name  192.168.1.60;

      location / {

                   proxy_pass http://local_tomcat;

                  }

    …………

}

 

   upstream+名字:分别对应部署的三个tomcatweight越大表示请求的几率就越大,backup表示备用,其它的tomcat挂掉了,访问它。

成功如下:

 

此时通过nginx转发到两个tomcat上,同一个地址两个tomcat交替给出响应,当停掉tomcat1tomcat2,我们继续访问,此时会访问备用的tomcat3,如下



 
到此,轮询方式的负载均衡已实现。

 

3.3 ip_hash的方式实现负载均衡

  3.3.1 修改nginx的配置文件

    #负载均衡配置

    #ip_hash

    

upstream local_tomcat {

         ip_hash;

        server 192.168.1.60:8080 weight=1 max_fails=2 fail_timeout=2;

        server 192.168.1.60:8081 weight=1 max_fails=2 fail_timeout=2;

    }

    server {

        listen       80;
        server_name  192.168.1.60;

      location / {

                       proxy_pass http://local_tomcat;

                   }
    …………
 }

 

采用ip_hash方式可绑定请求访问ip以解决session问题,其中无backup机器,max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。 fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

测试如下:

 
断掉tomcat1,再访问,即会发现,全部请求都转到了tomcat2ip_hash负载均衡就可以了。

 

总结:轮询方式根据比重来分配,但是不能解决session,ip_hash可以解决,但很多项目里都采用memcached来保存session,已此来保存,后续单独再弄。

 

 四、分文件过滤,静态文件伺服

主要目的:nginx直接缓存一些静态文件、图片、csshtml……,客户端发起请求,通过nginx直接返回回来,不通过tomcat处理

4.1修改nginx的配置文件

server {

        listen       80;

        server_name  192.168.1.60;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #jsp页面跳转

        location ~ \.jsp$ {

           proxy_pass   http://local_tomcat;

        }

        #静态文件缓存

        location ~ \.(html|js|css|png|gif)$ { 

                                         root  /usr/local/nginx/html;

        } 

        #错误页面跳转

        error_page  404     /404.html;

        error_page   500 502 503 504  /50x.html;

      …………

}

 

修改了之前的loction /{……}  改变的判断动态的.jsp后缀交给tomcat处理,其余的一些html等等直接找/usr/local/nginx/html 该文件夹下对应的,定义了404页面。如下:

/usr/local/nginx/html文件下有如下文件:

 

此时访问最后一个html如下:



 

访问一个不存在的路径,如下:




注:如果后缀为.jsp,nginx配置文件直接转到了tomcat处理,不会经过此处的拦截,可以在nginx进行判断,也可以在项目里做处理。

 

到此为止,基本可以达到要求。

 

  参考:

 

  • 大小: 56 KB
  • 大小: 45.1 KB
  • 大小: 84.1 KB
  • 大小: 64.8 KB
  • 大小: 18.5 KB
  • 大小: 130.4 KB
  • 大小: 112.4 KB
  • 大小: 99.7 KB
  • 大小: 97.5 KB
  • 大小: 3.1 KB
  • 大小: 47.3 KB
  • 大小: 28.7 KB
分享到:
评论

相关推荐

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

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

    nginx+tomcat负载均衡集群思路步骤过程.docx

    【Nginx+Tomcat负载均衡集群部署】 在IT领域,构建高可用和高并发的Web服务是至关重要的。Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,...

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

    在构建高性能Web服务时,Nginx...综上所述,通过Nginx+Tomcat的架构,我们可以创建一个高效的负载均衡集群,提供高可用性、可扩展性和性能优化。在实际操作中,还需要根据具体业务需求和环境调整配置,以达到最佳效果。

    nginx+tomcat负载、集群简单搭建

    本文将详细介绍如何在Windows环境下进行Nginx+Tomcat负载均衡及集群的搭建过程,适合初学者参考。 #### 二、准备工作 1. **下载Nginx** - 访问官方下载页面:[http://nginx.org/en/download.html]...

    Nginx+KeepAlived+Tomcat负载架构

    ### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...

    Nginx+Tomcat负载均衡配置教程

    ### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx官方网站下载适合您操作系统的最新版本。推荐下载稳定版以确保运行稳定。 - **解压文件**:将...

    Nginx+Tomcat+Memcached共享session集群配置

    ### Nginx+Tomcat+Memcached 共享 Session 集群配置 #### 一、概述 在大型分布式系统中,为了实现高可用性和负载均衡,常常会使用 Nginx 作为反向代理服务器来分发请求到后端多个 Tomcat 实例上。然而,传统的基于...

    keepalived+Nginx+tomcat 搭建集群

    keepalived+Nginx+Tomcat 集群搭建** 在高并发场景中,仅靠单台 Nginx 可能不足以应对,这时可以结合 keepalived 实现高可用和负载均衡。Keepalived 提供 VRRP 协议来监控 Nginx 主备节点状态,当主节点故障时,...

    nginx+tomcat在windows下做负载均衡

    【Nginx+Tomcat在Windows下做负载均衡】 负载均衡是一种网络技术,它通过将流入的网络流量分发到多个服务器,以提高服务的可用性和响应速度,防止单个服务器过载。在这个场景中,Tomcat作为Java应用服务器,由于...

    Nginx+tomcat

    ### Nginx+Tomcat 实现高性能负载均衡的详细解析 #### 一、概述 在现代互联网架构中,为了提高网站或应用的可用性和性能,通常会采用负载均衡技术来分发请求到多个服务器上执行。其中,Nginx 和 Tomcat 组合是一种...

    nginx+tomcat集群

    【Nginx+Tomcat集群】是常见的Java Web服务架构,这种组合利用Nginx作为前端反向代理服务器,负责接收客户端请求,并将这些请求分发到后端多个Tomcat实例,实现负载均衡,提高系统可用性和响应速度。以下是详细的...

    深入剖析TOMCAT+Tomcat权威指南(第二版)

    《深入剖析TOMCAT+Tomcat权威指南(第二版)》是两本关于Apache Tomcat服务器的重量级著作,它们详尽地阐述了Tomcat的内部工作机制、配置、优化以及故障排查等方面的知识,旨在帮助读者从新手到专家,全面掌握这款广泛...

    Nginx+Keepalived+Redis+Tomcat

    根据提供的文件信息,本文将详细解析如何在Linux环境下构建Nginx+Keepalived+Redis+Tomcat集群,实现session共享、负载均衡以及高可用性。以下内容将围绕集群规划与具体实施步骤展开。 ### 一、集群规划 在进行...

    Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享

    ### Nginx+Tomcat+Redis搭建高性能负载均衡集群及Session共享 #### 一、概述 在现代Web应用中,为了提高网站的响应速度、稳定性以及处理能力,常常需要搭建一个能够支持高并发请求的服务器集群。其中,Nginx作为一...

    nginx+tomcat.docx

    "nginx+tomcat.docx" 本文档主要介绍了反向代理和Nginx服务器的知识点,并且详细讲解了反向代理的作用和Nginx服务器的特点。 一、反向代理 反向代理(Reverse Proxy)是指以代理服务器来接受客户端的连接请求,...

    windows下Nginx+memcached+Tomcat集群配置实现session共享与负载均衡

    通过以上步骤,你已经配置了一个基本的Windows环境下的Nginx+memcached+Tomcat集群,实现了session共享和负载均衡。用户请求将被Nginx均匀分配到各个Tomcat实例,而session数据则通过memcached在不同Tomcat之间保持...

    lvs+keepalived+nginx+tomcat+memcached实现服务负载均衡及session共享

    通过以上步骤,我们可以构建一个具有服务负载均衡和session共享能力的Web服务集群,提高系统的可用性和性能,同时确保用户的会话一致性。在实际操作中,还需要结合监控和日志分析等工具,持续优化和调整配置,以适应...

Global site tag (gtag.js) - Google Analytics