nginx 和 tomcat 组合搭建后端负载均衡
2015-12-23 13:47
633 查看
nginx 和 tomcat的组合是后端服务器的常用架构。通过nginx实现负载均衡。
nginx的主要配置可以见下面这个链接
/article/5720435.html
下面说说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后加载,关于加载顺序以及合并规则可以看这个链接:
http://stackoverflow.com/questions/24142497/servlets-where-are-web-xml-files-searched-for-how-are-multiple-web-xml-files-m
其中server.xml里面需要配置一下端口以及web包的位置。
基本配置就到这里结束。
nginx的主要配置可以见下面这个链接
/article/5720435.html
下面说说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后加载,关于加载顺序以及合并规则可以看这个链接:
http://stackoverflow.com/questions/24142497/servlets-where-are-web-xml-files-searched-for-how-are-multiple-web-xml-files-m
其中server.xml里面需要配置一下端口以及web包的位置。
基本配置就到这里结束。
相关文章推荐
- window7 64bit解决tomcat内存不足问题
- linux下的环境的部署 jdk tomcat
- Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
- eclipse里访问tomcat首页出现404错误解决方法
- ubuntu 安装 tomcat7
- jdk+tomcat
- tomcat独立使用正常,但是在eclipse里却不能调用tomcat
- TOMCAT应用部署
- eclipse+tomcat开发web项目
- linux 下shutdown命令关闭多个tomcat问题
- Linux环境Tomcat运行报错java.lang.OutOfMemoryError
- tomcat架构分析 (JNDI配置)
- myeclipse中的工程修改名字后,在Tomcat的deploy location中的修改
- Tomcat及各种错误
- Java开发基础环境搭建(jdk1.7+tomcat7+mysql5.6)
- Xmapp启动Tomcat时报Jdk、Jre未安装错误的解决方法
- tomcat的一些知识
- The Apache Tomcat Native library which allows optimal performance in production environments was not
- 问题:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Dri
- Jetty 的工作原理以及与 Tomcat 的比较