Tomcat之如何使用Nginx进行集群部署
目录结构:
1,为什么需要集群
集群就是把一个项目发布到多个服务器下面,然后再对多个服务器进行管理,一台普通tomcat基本上可以承受的并发量几乎在3000左右,如果有两台tomcat那么并发量就可以翻倍,因此使用集群开发可以极大的减少单台服务器的压力和提高用户访问的舒适度。对多个服务器进行管理的过程,叫做负载均衡。当URL访问的时候,首先由负载均衡处理,然后根据权重分配这个URL到底访问那个服务器上面的资源。

通过这张图片可以看出,主要通过一个负载均衡软件作为服务器,实现多个tomcat服务器之间的分布式处理,用户直接请求负载均衡软件,然后由负载均衡软件把请求分配到具体的tomcat中去,之后tomcat响应负载均衡软件,再有负载均衡软件把数据响应给用户。
2,如何使用Nginx部署Tomcat集群
上面的负载均衡软件有许多比如:Apacher Server 、Nginx等等,这里笔者介绍使用Nginx软件的方式。
2.1 下载Nginx软件
读者可以到nginx中下载一个稳定版本的nginx(偶数),Nginx下载。
2.2 同一台电脑上部署多个Tomcat服务器
为了在本地上演示部署多个Tomcat服务器,我们需要在本地上部署多个Tomcat服务器,这里笔者就部署两个,Tomcat1和Tomcat2。我们运行项目的时候,catalina.bat和startup.bat会自动读取环境变量的CATALINA_HOME的值,如果需要部署多个Tomcat,那么就需要修改环境变量,并且修改catalina.bat和startup.bat中的CATALINA_HOME。关于Tomcat的安装和配置可参见Tomcat的下载和配置。
这里笔者把Tomcat解压到了:E:\tomcats

这里笔者把Tomcat赋值了两个,分别为Tomcat1和Tomcat2,然后在环境变量新建变量CATALINA_HOME1和CATALINA_HOME2,分别指向tomcat1和tomcat2。

然后对在对Tomcat1中bin目录下的catalina.bat和startup.bat文件进行修改,将所有的CATALINA_HOME替换CATALINE_HOME1。

Tomcat2同理,也进行修改,将CATALINA_HOME替换为CATALINA_HOME2。
在修改完毕后,因为两个服务器需要同时开启,所以将Tomcat1和Tomcat2的端口错开,这里笔者建议将两个server.xml文件中所有端口都错开,这里笔者指定了Tomcat1的端口8081,Tomcat2的端口为8082。
然后开启两个服务器。


可以看出成功启动了两个服务器,tomcat1和tomcat2。笔者对Tomcat的index文件进行了修改,以示区分两个Tomcat。
2.3 在Nginx软件中对多个Tomcat服务器进行管理
在2.2中,我们实现了在一台电脑部署多个Tomcat。接下来就是用Nginx软件对Tomcat进行集群管理。
在下载好Nginx解压后

在conf目录下,打开nginx.conf这个文件。

添加一个
upstream server_list{
server localhost:8081;
server localhost:8082;
}
和
proxy_pass http://server_list/;
如果外部请求80端口那么就会有Nginx进行地址分配。


可以看出访问同一个地址可以访问不同的服务器,关于这里tomcat1和tamcat2出现的次数和nginx.conf文件中分配的权重有关。
3 集群开发的session共享和Ajax跨域请求
上面是基于Tomcat的集群开发,使用一堆服务器来减轻负担的话,那么服务器之间的通信就由成为了一个新的问题。关于session会话,如果是基于集群开发,不建议使用session,关于集群之间session共享可以参考http://www.cnblogs.com/ruiati/p/6247588.html,关于集群开发中ajax跨域请求的问题,可是使用jsonp来解决。
Tomcat之如何使用Nginx进行集群部署的更多相关文章
- 利用nginx进行集群部署
现在一般的服务器都是集群的情况了,所以准备搞集群部署下. nginx用的是第三方的openrestynginx.首先安装nginx,我的系统是UBuntu,安装方法也很简单,见官网. 自己采用了默认安 ...
- Apache+Tomcat+jk windows环境下的集群部署
记一次在Windows服务器上搭建apatch+tomcat+jk的集群搭建过程,其中也遇到了很多问题,总结一下. 一.准备工作 1.apache-tomcat-7.0.88 2.Apche http ...
- Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- tomcat+nginx+redis集群试验
Nginx负载平衡 + Tomcat + 会话存储Redis配置要点 使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现0当机的7x24 运 ...
- 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享
一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...
- 使用Tomcat+Redis来实现集群部署中的Session共享问题
一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...
- 基于Tomcat的Solr3.5集群部署
基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...
- Tomcat部署问题,Tomcat集群部署问题。
1.服务器崩溃,指的是Tomcat程序崩溃,还是服务器系统崩溃? 答:都有可能. 所以一台服务器上部署多个Tomcat可以防止程序崩溃问题.但不能避免服务器崩溃,要避免服务器崩溃,就要采用服务器集群. ...
随机推荐
- Android 显示网络图片
本文内容 环境 演示显示网络图片 本文演示 Android 如何显示网络图片.学习一门新的语言,最好办法就先了解该语言的语法和库,以及设计思想,再着手现实一些常用功能,毕竟以后用该语言是要写程序的,而 ...
- 去掉JAVA部分依赖的事例
一.现象 最近做JAVA项目,需要依赖一个外部的JAR包,但是依赖之后,发现eclipse一直workspace,估计是包重复加载的问题 二.问题 使用查看包依赖的命令:mvn dependency: ...
- JAVA的CLASS文件详解
一.事例 1.1 Test.java public class Test { public static void main(String[] args) { System.out.println(& ...
- struts.xml文件中package元素的各大属性讲解
Struts2中的包: Struts2使用包来组织Action,将Action放在包下来定义,通过package元素配置一个包,通过package的子元素action来定义一个Action: Stru ...
- Git如何获得两个版本间所有变更的文件列表
https://segmentfault.com/q/1010000000133613 git diff --name-status HEAD~2 HEAD~3
- 【翻译自mos文章】当/var/tmp文件夹被remove掉之后,GI crash,并启动失败,原因是ohasd can not create named pipe
来源于: GI crashes and fails to start after "/var/tmp" directory was removed as ohasd can not ...
- 〖Linux〗Shell十进制数值转换十六进制
dec2hex(){ printf } a=$(dec2hex ) echo $a
- 7、redis之使用spring集成commons-pool来操作常见数据类型
环境的搭建参见:http://www.cnblogs.com/yangzhilong/p/4729857.html 下面直接贴具体的测试代码: package com.yzl; import java ...
- DLib压缩解压程序示例
/* 这是一个示例程序,使用了Dlib库的compress_stream和cmd_line_parser组件. 这个示例实现了一个简单实用的命令行压缩程序. 当使用-h选项时候,程序输出如下: 使用: ...
- Spring Cloud Zuul性能调整
Spring Cloud 版本: Dalston.SR5 这两天通过JMeter测了一下Spring Cloud Zuul的性能,用的是两台虚机8核8G和4核8G,宿主机是10核逻辑20核,代理的服务 ...