Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将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集群部署相关推荐
- Linux系统搭建Nginx+Tomcat集群部署
Nginx支持的负载均衡调度算法方式: 1. 热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务.服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB ...
- 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享
2019独角兽企业重金招聘Python工程师标准>>> 一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储S ...
- Nginx+tomcat集群
Nginx+tomcat集群 定义:在测试环境中有多个tomcat运行这一个项目,需要nginx管理 2特点:1,增加项目访问能力 2,增加服务器性能 3,实现不同负载均衡 3负载均衡:根据每台服务器 ...
- 50 Tomcat 集群部署
文章目录 1.JVM基本介绍 2.Tomcat是什么,与Nginx的区别. 3.Tomcat安装.配置.启动 4.Tomcat的HTTP请求过程 4.使用tomcat部署web服务 5.使用tomca ...
- Nginx+Tomcat集群与负载均衡
Nginx+Tomcat集群与负载均衡 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomca ...
- linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)
CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群) CentOS 7.4(腾讯云) pcre库 zlib库 openssl Nginx服务器 安装gcc g++开发类库 y ...
- tomcat集群部署
tomcat集群部署 1 创建2个 tomcat 2 将 tomcat 官网文档的配置示例复制到 server.xml文件中 3 修改 server.xml 文档中的参数配置 3.1 Cluster ...
- Nginx+Tomcat集群的安装与配置
Nginx安装在ip为x.x.x.x的服务器上 Tomcat安装在ip为y.y.y.y的服务器上 nginx安装 第一步,安装编译工具及库文件,如果服务器上已经有了,可以不用再安装. 命令:yum - ...
- Nginx+Tomcat集群环境搭建
Tomcat集群能带来什么? 提高服务的性能.并发能力.以及高可用性 提高项目架构的横向扩展能力 提高服务的性能 实际公司线上生产环境都会选择一台机器部署一个tomcat,多台机器完成集群,毕竟一台机 ...
最新文章
- mysql raw_Oracle中的Raw类型解释
- Sql 先进先出计算积分
- centos7精简安装后使用发现没有killall命令
- 【内有网易黑猪肉券福利】网易MCTalk首秀——在线教育是一场马拉松
- JDK10的新特性:var泛型和多个接口实现
- 牛客假日团队赛5J	护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...
- 【TensorFlow篇】--Tensorflow框架实现SoftMax模型识别手写数字集
- 8分钟学会Consul集群搭建及微服务概念
- #20071-[NOIP2020模拟赛B组Day6]礼物购买【二分】
- 通过Small Basic把儿子/女儿带入编程的世界
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
- 积温空间分布数据、气温分布数据、日照数据、降雨量分布、太阳辐射数据、地表径流数据、土地利用数据、npp数据、ndvi数据
- MySQL引擎innodb和mysum_mysql数据库引擎 MyISAM和 InnoDB区别
- Java移位运算符:<<,>>,>>>
- 姿态估计4-06:voxelpose(多视角3D人体姿态估算)-源码无死角解析(1)-训练代码总览
- love2d 开发环境
- iOS 2020 开发者账号 身份验证步骤
- linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客
- sublime匹配汉字
- 淘宝服务商怎么入驻(入驻淘宝需要什么条件)
热门文章
- 联想旭日420M弹出邮件问题
- LeetCode 753. Cracking the Safe
- 用原生JS模拟一个聊天记录表
- 借钱不还要怎么起诉担保人
- 电脑蓝屏故障分析大全
- Android实现长按圆环动画View
- 中文翻译Introduction to Linear Algebra, 5th Edition 5.2
- Linux 错误:delimited by end-of-file (wanted `EOF')
- IDE(2)——VS系列(2)——VS中代码对齐等快捷键
- 到底如何选择阿里云服务器?