zoukankan      html  css  js  c++  java
  • nginx 和 tomcat 组合搭建后端负载均衡

    nginx 和 tomcat的组合是后端服务器的常用架构。通过nginx实现负载均衡。

    nginx的主要配置可以见下面这个链接
     
    下面说说tomcat配置,tomcat单实例配置网上比较多,但是实际应用中我们经常需要在一台机器上配置多个tomcat实例,比如一个实例用于给用户提供web服务,一个实例用于内部人员后台,一个实例用于内部测试等等。
    启动tomcat的时候是执行安装目录下的startup.sh
    从图中可以看出实际上是执行了catalina.sh这个脚本,继续跟踪到catalina.sh,找到真正启动jvm的部分如下(有多个启动的部分,不同的系统环境启动的方式不同,我的机器上的启动环境是如下部分):
    由上图可以看出,tomcat在真正启动的时候实际上是依赖于CATALINA_BASE, CATALINA_HOME, CATA_TMPDIR, CATALINA_OUT这几个环境变量。
    其中CATALINA_BASE用于控制启动tomcat的位置,通过控制这个变量就可以从不同的目录下启动tomcat,达到多实例的目的,同时还需要控制好CATALINA_OUT这个变量,这个变量用于重定向标准输出,其中标准错误输出被重定向到了标准输出,所以正常输出和错误输出都会打印到CATALINA_OUT所指定的文件中。
     
    下面介绍设置这几个环境变量的设置:CATALINA_HOME和CATALINA_BASE一般在startup.sh执行前设置好。CATALINA_HOME设置为tomcat安装目录,CATALINA_BASE设置成自定义的tomcat启动目录。
    如果没有设置会设置默认值
     
    有的时候需要设置自定义的日志输出目录或者自定义jvm启动options参数。所以可以通过设置JAVA_OPTS来设定。
    设置CATALINA_OUT以及设置JAVA_OPTS可以在setenv.sh中实现,也可以直接在CATALINA_HOM和CATALINA_BASE设置的时候一起设置了。
    上图中有个设置环境变量的脚本,可以设置内容如下:
     
    上面的流程就是tomcat多实例启动的过程,关键在于几个重要的环境变量是否设置正确,通过CATALINA_BASE可以设置多实例启动,通过JAVA_OPTS可以自定义jvm启动选项,通过CATALINA_OUT可以设置tomcat的输出日志。这样就可以有效的将过个tomcat实例分开来,从而达到一台机器上启动多个实例的目的。
     
    弄清楚了启动的流程,下面介绍一个tomcat启动目录需要哪些目录。
    将bin,conf,logs,temp,work这些目录拷贝到单独的一个目录之下,conf目录是最主要的部分,tomcat会根据conf下面的server.xml来配置tomcat。
    conf目录这几个配置文件:这里注意一下有两个web.xml文件,两个都会加载,应用中的web.xml后加载,关于加载顺序以及合并规则可以看这个链接:
    其中server.xml里面需要配置一下端口以及web包的位置。
    基本配置就到这里结束。
     
     
     
     
     
  • 相关阅读:
    改动文件名称
    十五周 项目1 工资数据的输入
    通过YAJL获取json中的值
    图数据库之Pregel
    hdu 1028 Ignatius and the Princess III
    iOS使用ffmpeg播放rstp实时监控视频数据流
    Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
    MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
    QCustomPlot使用手冊(三)
    Mac下搭建react native开发环境
  • 原文地址:https://www.cnblogs.com/hpf311/p/5069729.html
Copyright © 2011-2022 走看看