1.将tomcat复制两份,如下:

2.新建环境变量,如下:

3.修改其中一个的配置文件,另一个保持不变,修改server.xml配置文件如下:

<Server port="9005" shutdown="SHUTDOWN">

    <Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />

4.修改catalina.bat和startup.bat,如下:

将所有CATALINA_BASE改为CATALINA_2_BASE,将所有CATALINA_HOME改为CATALINA_2_HOME

5.分别start两个tomcat,如果都能正常启动,且都用自己的环境变量,则说明配置成功。

6.修改host文件配置:127.0.0.1 域名

127.0.0.1 tomcat2.mall.com

7.进入ngnix中,针对刚才配置的域名,新建conf配置文件,配置内容如下:

upstream tomcat2.mall.com {
#weight是权重相对比例,也就是刷新tomcat2.mall.com时,负载均衡到的网页的可能比例
server 127.0.0.1:8080 weight=1;#【=两边一定不要加空格】
server 127.0.0.1:9080 weight=1;
#server tomcat2.mall.com:8080;
#server tomcat2.mall.com:9080;
} server {
listen 80;
autoindex on;
server_name tomcat2.mall.com;
access_log E:/software_setup/nginx-1.10.2/nginx-1.10.2/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://tomcat2.mall.com;
add_header Access-Control-Allow-Origin *;
}
}

8.开启tomcat,开启ngnix,刷新url:tomcat2.mall.com,可以观察变化(可以修改tomcat->root下的tomcat.png的图片,观察变化)。

在idea端开启两个tomcat服务:

1.复制一份源码,并重命名,利用idea打开两个源码,就有两个窗口打开。

2.编辑第二份源码里的tomcat,如图:,修改:,将其选择在上面已经准备好的tomcat2上。然后修改:,如果正确选择在tomcat2上,http端口会自动获取到配置好的tomcat2的端口,这里应该是9080,然后修改JMX端口,不然就会与tomcat1发生冲突,这里可以改为2099.。最后修改:,删除原有的deployment,重新添加一个deployment,注意要选mall:war,不要选mall:war exploded。

3.到此为止,就可以分别启动tomcat1和tomcat2了,但是在最后关闭tomcat时,会出现端口占用问题,也就是有一个tomcat没有真正关闭,会出现这样的图标:,解决办法:在cmd命令行执行:netstat -ano,查看端口占用状态。而只要查看到1099端口的占用状态即可,比如此时是:,打开任务管理器,查看当前进程:,发现正在运行,结束当前进程即可。此时图标还原到正常:

tomcat+ngnix单机搭建集群及端口占用问题的更多相关文章

  1. SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作

    参考:https://my.oschina.net/u/1416405/blog/821187 1.Solr 单机 1.1.Solr下载 1.solr官网:http://lucene.apache.o ...

  2. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  3. Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享

    小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...

  4. 用apache和tomcat搭建集群,实现负载均衡

    型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问 ...

  5. apache和tomcat搭建集群

    最近在学习简单的apache服务器和两个tomcat一起搭建集群,这里简单记录一下 1.准备工作 ①搭建一个可以运行的web项目 用maven搭建springmvc项目 ,只要将这里面的web.xml ...

  6. Redis 5.0.7 讲解,单机、集群模式搭建

    Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业 ...

  7. Zookeeper集群搭建(多节点,单机伪集群,Docker集群)

    Zookeeper介绍 原理简介 ZooKeeper是一个分布式的.开源的分布式应用程序协调服务.它公开了一组简单的原语,分布式应用程序可以在此基础上实现更高级别的同步.配置维护.组和命名服务.它的设 ...

  8. Nginx + Tomcat搭建集群

    一.Tomcat集群带来的好处 1.提高服务的性能,并发能力,以及高可用性 2.提供项目架构的横向扩展能力 二.Tomcat集群实现原理 通过Nginx负载均衡进行请求转发 三.Nginx + Tom ...

  9. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

随机推荐

  1. http2.0可行性研究

     一.http2比http1有了更多新特性 1.使用了多路复用的技术,并发量支持比http1大几个数量级: 2.二进制分帧,改善网络延迟情况,提高传输速率: 3.支持header的数据压缩,数据体积变 ...

  2. HN2018省队集训

    HN2018省队集训 Day1 今天的题目来自于雅礼的高二学长\(dy0607\). 压缩包下载 密码: 27n7 流水账 震惊!穿着该校校服竟然在四大名校畅通无阻?霸主地位已定? \(7:10\)从 ...

  3. linux内核分析 第四周 扒开系统调用的三层皮(上)

    一.用户态.内核态和中断处理过程 系统调用是用户通过库函数方式:库函数帮我们把系统调用封装起来. 内核态:高级别执行,可以使用特权指令,访问任意的物理地址. 用户态:低级别执行,代码范围受到限制. C ...

  4. MyBatis之自查询,使用 递归实现 N级联动

    A:首先先看下一个简单的面试题 斐波那契数列 计算数组{1,1,2,3,5,8.......} 第30位值 规律:1 1 从第三项开始,每一项都是前两项之和 有两种实现方式 第一种方式: public ...

  5. 【learning】中国剩余定理

    问题描述 "今有物不知其数,三三数之余二,五五数之余三,七七数之余二.问物几何?" emmm这是..最开始这个问题被提出来的描述 其实说白了就是求解一次同余式组 然后还可以..解决 ...

  6. C++堆和栈详解(转)

    一.预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1.栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等.其    操 ...

  7. JavaScript的变量预解析特性

    JavaScript是解释型语言是毋庸置疑的,但它是不是仅在运行时自上往下一句一句地解析的呢?事实上或某种现象证明并不是这样的,通过<JavaScript权威指南>及网上相关资料了解到,J ...

  8. Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp

    B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  9. php curl使用ss代理

    1.安装 ss,过程略 2.ss 配置文件 { "server":"x.x.x.x", #你的 ss 服务器 ip "server_port" ...

  10. hihocoder #1584 : Bounce

    题意; 有一个n*m的网格阵,球从左上角开始在网格中碰撞,碰到边界就直角反弹,到达格子的角落结束,求途中经过一次的格子数. 代码: //神马规律啊,设x表示球与垂直面的撞击次数,y为球与水平墙面的撞击 ...