linux下nginx tomcat集群
- 集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器。
- 这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力。而tomcat集群这是可以做到以上几点。
- 首先,安装nginx之前需要pcre依赖和jvm-remote补丁。
- 一、准备如下软件:
- 、nginx-1.1..tar.gz,负载均衡/反向代理服务器,可通过http://nginx.org/en/download.html获取。
- 、pcre-8.10.tar.gz,正规表达式库,可通过http://sourceforge.net/projects/pcre/获取;
- 、nginx-upstream-jvm-route-0.1.tar.gz,是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能,可通过http://code.google.com/p/nginx-upstream-jvm-route/downloads/list获取;
- 二、安装和安装
- 、解压各软件
- [root@localhost ~]# tar zxvf pcre-8.10.tar.gz
- [root@localhost ~]# tar zxvf nginx-upstream-jvm-route-0.1.tar.gz
- [root@localhost ~]# tar nginx-1.1..tar.gz
- 、安装
- [root@localhost ~]# cd nginx-1.1.
- [root@localhost ~]# patch -p0 < ${nginx-upstream-jvm-route解压目录}/jvm_route.patch
- [root@localhost ~]# ./configure --prefix=/usr/local/nginx --with-pcre=${pcre解压目录} --with-http_stub_status_module --with-http_ssl_module --add-module=${nginx-upstream-jvm-route解压目录}
- [root@localhost ~]# make
- [root@localhost ~]# make install
- 三、修改配置
- 、修改tomcat的server.xml,服务器的tomcat的配置文件中分别找到:
- <Engine name="Catalina" defaultHost="localhost" >
- 分别修改为:
- Tomcat01:
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="a">
- Tomcat02:
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="b">
- Tomcat03:
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="c">
- 、修改nginx的nginx.conf文件
- #运行NGINX所使用的用户和组
- user root;
- #nginx进程数,建议按照cpu数目来指定,一般为它的倍数,每个进程消耗约10M内存
- worker_processes ;
- #日志信息
- error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- pid logs/nginx.pid;
- events {
- #使用epoll的I/O模型
- use epoll;
- #该值受系统进程最大打开文件数限制,需要使用命令ulimit -n 查看当前设置
- worker_connections ;
- }
- http {
- #这里是您需要修改的地方,修改为您的服务器IP:端口号 srun_id为您在tomcat中所配置的jvmRoute
- upstream backend{
- server2.168.12.: srun_id=a;
- server2.168.12.: srun_id=b;
- server2.168.12.: srun_id=c;
- jvm_route $cookie_JSESSIONID|sessionid reverse;
- }
- include mime.types;
- #设置默认类型是二进制流,若未设置时,比如未加载PHP时,是不予解析,用浏览器访问则出现下载窗口
- default_type application/octet-stream;
- charset UTF-;
- server_names_hash_bucket_size8;
- client_header_buffer_sizek;
- large_client_header_buffers 4k;
- client_max_body_sizem;
- limit_rate24k;
- sendfile on;
- tcp_nopush on;
- keepalive_timeout;
- tcp_nodelay on;
- fastcgi_connect_timeout0;
- fastcgi_send_timeout0;
- fastcgi_read_timeout0;
- fastcgi_buffer_sizek;
- fastcgi_buffers 4k;
- fastcgi_busy_buffers_size8k;
- fastcgi_temp_file_write_size8k;
- gzip on;
- #gzip_min_length 1k;
- gzip_buffers 4k;
- gzip_http_version 1.0;
- gzip_comp_level ;
- gzip_types text/plain application/x-javascript text/css application/xml;
- gzip_vary on;
- #limit_zone crawler $binary_remote_addrm;
- server {
- listen ;
- server_name 2.168.12.128; #这里也是您所需要修改的地方,多域名用空格隔开
- index index.html index.htm index.jsp;
- charset UTF-;
- root /usr/local/tomcats/project/;# 这里也是您所需要修改的地方,虚拟机指向的路径(可能这里有点问题),我的web应用系统放在project下面的
- #access_log logs/host.access.log main;
- #这里也是您所需要修改的地方,yourproject更换成您的项目路径
- location /yourproject/ {
- 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;
- index index.html index.htm index.jsp;
- }
- location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
- expiresd;
- }
- 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';
- error_page /.html;
- error_page /50x.html;
- location = /50x.html {
- root html;
- }
- }
- }
- 、检查nginx的配置
- [root@localhost ~]# /usr/local/nginx/sbin/nginx -t -c /usr/nginx/conf/nginx.conf
- 四、启动测试
- /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- /usr/local/tomcats/tomcat-a/bin/startup.sh
- /usr/local/tomcats/tomcat-b/bin/startup.sh
- /usr/local/tomcats/tomcat-c/bin/startup.sh
- 停止服务
- /usr/local/tomcats/tomcat-a/bin/shutdown.sh
- /usr/local/tomcats/tomcat-b/bin/shutdown.sh
- /usr/local/tomcats/tomcat-c/bin/shutdown.sh
- pkill - nginx
版权声明:本文为博主原创文章,未经博主允许不得转载。
linux下nginx tomcat集群的更多相关文章
- Linux下搭建tomcat集群全记录(转)
本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- Linux下搭建tomcat集群全记录
(转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...
- 160513、nginx+tomcat集群+session共享(linux)
第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...
- 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...
- nginx+tomcat集群配置(4)--rewrite规则和多应用根目录设定思路
前言: nginx中有一块很重要的概念, 就是rewrite规则. 它会对URL进行修改, 然后进行内部的重定向. rewrite授予了nginx更多的自由, 使得后级服务的接入更加地方便. 本文将简 ...
- Linux+.NetCore+Nginx搭建集群
本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...
- nginx+tomcat集群配置(1)---根目录设定和多后端分发配置
前言: 对于javaer而言, nginx+tomcat集群配置, 已然成了web应用部署的主流. 大公司如此, 小公司亦然. 对于个人开发者而言, 资源有限, 往往多个web应用混部于一台服务器(云 ...
- nginx+ tomcat集群+动静资源分离
不知道为什么这个随便删不掉,写了也值显示一半一半不显示, 我把重新写了一遍: nginx + tomcat集群和动静资源分离
随机推荐
- FIO read测试结果偏离
工作中发现一个fio问题,测试组测试出来的数据read速度一个是17.0G/s,一个是13.2G/s.要知道我后台只有24块7.2k RPM的机械硬盘啊!怎么也不可能有这样的速度. 回家之后我模拟了实 ...
- vb 水晶报表打印
vb里面的水晶报表打印控件:CrystalReportViewer 用到的dll文件: 水晶报表打印其实很简单,只要创建报表对象,再对其传递数据就可以打印出来.当然所传递的数据要与水晶报表设计里面的数 ...
- tomcat原理解析(一):一个简单的实现
tomcat原理解析(一):一个简单的实现 https://blog.csdn.net/qiangcai/article/details/60583330 2017年03月07日 09:54:27 逆 ...
- django-区分时区的时间类型
# aware time:清醒的时间(清醒的知道自己这个时间代表的是哪个时区的)# navie time:幼稚的时间(不知道自己的时间代表的是哪个时区) 在settings.py中设置 LANGUAG ...
- python 编写远程连接服务器脚本
import paramiko client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPoli ...
- sqoop1 与sqoop2的对比
Sqoop是一款开源的工具,主要用于在Hadoop和传统的数据库(mysql.postgresql等)进行数据的传递,可以将一个关系型数据库(例如:MySQL.Oracle.Postgres等)中的数 ...
- JAVA JDBC 各大数据库的连接字符串和连接类
oracle: driverClass:oracle.jdbc.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mys ...
- android -chrome 调试
在chrome上 输入 chrome://inspect/ 连接手机,配置 监听8000,和8080端口 cordova默认是8000端口 如果出现白屏:原因:google在首次加载时,要进行服务器连 ...
- c++实现一个比较两个string类型的版本号的小demo
在软件实现更新模块的时候,有可能会判断一下服务器上的版本的版本号和本地版本的版本号. 下面有类似这样形式的版本号:string str = "0.0.0.1"; 分析一下可以看出, ...
- CSS选择器学习小结
关于CSS选择器的问题,在实际项目中,以及一般的前端面试中会经常遇到.下面对此做一小结,梳理和巩固相关方面知识.(如有不妥之处,还望大家及时批评指正,以免误导他人) 一.选择器种类 1.id选择器(# ...