为了获取更好的性能,我们常常需要将tomcat进行集群部署。下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞。

应用场景环境:

  server1 服务器上安装了 nginx + tomcat01

  server2 服务器上只安装了 tomcat02

  server1 IP 地址: 192.168.1.88

  server2 IP 地址: 192.168.1.89

安装步骤:

  1)在server1 上安装配置 nginx + nginx_upstream_jvm_route

  shell $> wget -c http://sysoev.ru/nginx/nginx-*.tar.gz

  shell $> svn checkout http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/ nginx-upstream-jvm-route-read-only

  shell $> tar zxvf nginx-*

  shell $> cd nginx-*

  shell $> patch -p0 < ../nginx-upstream-jvm-route-read-only/jvm_route.patch

  shell $> useradd www

  shell $> ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-upstream-jvm-route-read-only

  shell $> make

  shell $> make install

  2)分别在两台机器上安装 tomcat和java

  设置tomcat的server.xml,在两台服务器的tomcat的配置文件中分别找到:

  <Engine name="Catalina" defaultHost="localhost" >

  分别修改为:

  Tomcat01:

  <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

  Tomcat02:

  <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">

  分别启动两个tomcat

  3)设置nginx

  shell $> cd /usr/local/nginx/conf

  shell $> mv nginx.conf nginx.bak

  shell $> vi nginx.conf

  配置示例:

worker_processes 4;
error_log logs/nginx_error.log crit;
pid        /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 2048;
}
http
{
upstream backend {server 192.168.1.88:8080 srun_id=jvm1;server 192.168.1.89:8080 srun_id=jvm2;jvm_route $cookie_JSESSIONID|sessionid reverse;
}
include       mime.types;
default_type application/octet-stream;
#charset gb2312;
charset UTF-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 20m;
limit_rate 1024k;
sendfile on;
tcp_nopush     on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;gzip on;
#gzip_min_length 1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server
{listen       80;server_name 192.168.1.88;ssi on; ssi_silent_errors on; ssi_types text/shtml; index index.html index.htm index.jsp;root /var/www;#location ~ .*\.jsp$location /app/
{proxy_pass http://backend;proxy_redirect    off;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;}location ~ .*\.(js|css)?${expires      1h;}location /Nginxstatus {stub_status on;access_log   off;}
log_format access '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';
# access_log off;
}
}

4)测试

  运行 nginx -t 测试配置的正确性,

  可将服务器注释一个,实现服务的热部署,

  server 192.168.2.88:8080 srun_id=jvm1;

  server 192.168.2.89:8080 srun_id=jvm2;

  运行 nginx -s reload 实现热部署。

Nginx+Tomcat集群部署相关推荐

  1. Linux系统搭建Nginx+Tomcat集群部署

    Nginx支持的负载均衡调度算法方式: 1. 热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务.服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB ...

  2. 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享

    2019独角兽企业重金招聘Python工程师标准>>> 一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储S ...

  3. Nginx+tomcat集群

    Nginx+tomcat集群 定义:在测试环境中有多个tomcat运行这一个项目,需要nginx管理 2特点:1,增加项目访问能力 2,增加服务器性能 3,实现不同负载均衡 3负载均衡:根据每台服务器 ...

  4. 50 Tomcat 集群部署

    文章目录 1.JVM基本介绍 2.Tomcat是什么,与Nginx的区别. 3.Tomcat安装.配置.启动 4.Tomcat的HTTP请求过程 4.使用tomcat部署web服务 5.使用tomca ...

  5. Nginx+Tomcat集群与负载均衡

    Nginx+Tomcat集群与负载均衡 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomca ...

  6. linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)

    CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群) CentOS 7.4(腾讯云) pcre库 zlib库 openssl Nginx服务器 安装gcc g++开发类库 y ...

  7. tomcat集群部署

    tomcat集群部署 1 创建2个 tomcat 2 将 tomcat 官网文档的配置示例复制到 server.xml文件中 3 修改 server.xml 文档中的参数配置 3.1 Cluster ...

  8. Nginx+Tomcat集群的安装与配置

    Nginx安装在ip为x.x.x.x的服务器上 Tomcat安装在ip为y.y.y.y的服务器上 nginx安装 第一步,安装编译工具及库文件,如果服务器上已经有了,可以不用再安装. 命令:yum - ...

  9. Nginx+Tomcat集群环境搭建

    Tomcat集群能带来什么? 提高服务的性能.并发能力.以及高可用性 提高项目架构的横向扩展能力 提高服务的性能 实际公司线上生产环境都会选择一台机器部署一个tomcat,多台机器完成集群,毕竟一台机 ...

最新文章

  1. mysql raw_Oracle中的Raw类型解释
  2. Sql 先进先出计算积分
  3. centos7精简安装后使用发现没有killall命令
  4. 【内有网易黑猪肉券福利】网易MCTalk首秀——在线教育是一场马拉松
  5. JDK10的新特性:var泛型和多个接口实现
  6. 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...
  7. 【TensorFlow篇】--Tensorflow框架实现SoftMax模型识别手写数字集
  8. 8分钟学会Consul集群搭建及微服务概念
  9. #20071-[NOIP2020模拟赛B组Day6]礼物购买【二分】
  10. 通过Small Basic把儿子/女儿带入编程的世界
  11. 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
  12. 积温空间分布数据、气温分布数据、日照数据、降雨量分布、太阳辐射数据、地表径流数据、土地利用数据、npp数据、ndvi数据
  13. MySQL引擎innodb和mysum_mysql数据库引擎 MyISAM和 InnoDB区别
  14. Java移位运算符:<<,>>,>>>
  15. 姿态估计4-06:voxelpose(多视角3D人体姿态估算)-源码无死角解析(1)-训练代码总览
  16. love2d 开发环境
  17. iOS 2020 开发者账号 身份验证步骤
  18. linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客
  19. sublime匹配汉字
  20. 淘宝服务商怎么入驻(入驻淘宝需要什么条件)

热门文章

  1. 联想旭日420M弹出邮件问题
  2. LeetCode 753. Cracking the Safe
  3. 用原生JS模拟一个聊天记录表
  4. 借钱不还要怎么起诉担保人
  5. 电脑蓝屏故障分析大全
  6. Android实现长按圆环动画View
  7. 中文翻译Introduction to Linear Algebra, 5th Edition 5.2
  8. Linux 错误:delimited by end-of-file (wanted `EOF')
  9. IDE(2)——VS系列(2)——VS中代码对齐等快捷键
  10. 到底如何选择阿里云服务器?