精华内容
下载资源
问答
  • 同一台服务器多个Tomcat,部署同一个项目session覆盖的问题   最近段时间,在开发环境部署多项目,其中一套用于对外调试,一套内部开发测试,限于资源有限,也使为了方便管理,就在同一台机器上创建了两...

    同一台服务器,多个Tomcat,部署同一个项目session覆盖的问题

      最近一段时间,在开发环境部署多套项目,其中一套用于对外调试,一套内部开发测试,限于资源有限,也使为了方便管理,就在同一台机器上创建了两个Tomcat。所以就有了如题目所描述的场景,一台服务器中多个Tomcat,而且Tomcat里部署的项目都是一样的。

    遇到的问题

      简单描述一下,那台机器中服务器和项目的配置,TomcatA和TomcatB,里面同事部署了projectTest项目。配置好了后,开始用得好好的,偶然发现打开一个浏览器,先访问一下TomcatA的projectTest,登录进去了,然后开启一个新的标签页,访问TomcatB的projectTest,然后再访问TomcatA的projectTest,会发现需要重新登录了。这个过程可以如下步骤表述:

    • 1.访问TomcatA的projectTest项目,登录进去。

    • 2.同一个浏览器,新开一个标签页,访问TomcatB的projectTest项目。

    • 3.回到TomcatA的projectTest项目刷新一下,会发现需要重新登录。

    其实在在第2步操作时,session就已经发生了覆盖了。

    发生session覆盖的原因

      因为是同一台机器,所以IP是一样的,项目也是一样,只有端口是不同的;在步骤1,访问TomcatA的项目时,会返回一个JSESSIONID给客户端,客户端会根据IP+项目名作为一个站点的标识,与cookies中的JSESSIONID关联起来。当你向TomcatB的项目发起访问时,浏览器根据你访问的URL,解析得到你的IP+项目名,找到TomcatA关联的cookies,也发给了TomcatB,而TomcatB根本没有这个JSESSIONID,所以会重新生成一个返回给浏览器,那么新的JSSESSIONID的cookies又会跟IP+项目名关联;同理,此时的JSESSIONID已经不是TomcatA最初的JSESSIONID了,所以第3步访问TomcatA的项目,会导致发现session丢失或者说被覆盖了的现象。

    解决方案

      直接改下conf文件下的context.xml的context标签, 修改Tomcat返回的JSESSIONID的名字,如:SessionCookieName=”JSESSIONID_1”,设置一个名字(默认是JSESSIONID) ;那么上面例子中,我们将TomcatA改为SessionCookieName=”JSESSIONID_A”,TomcatB改为SessionCookieName=”JSESSIONID_B”;,这个的原理就是通过让每个Tomcat的为项目返回的SessionID的名字不重复,所以即使TomcatA的JSESSIONID_A发往TomcatB,TomcatB没有这个JSESSIONID_A,它会产生一个JSESSIONID_B,此时返回给浏览器的JSESSIONID_B因为与JSESSIONID_A不同而不会发生覆盖,因此可以解决该问题。

    展开全文
  • 本人有多个项目部署同一台服务器,共用一个redis服务,而且这几个项目的结构也是一直的,都用redis缓存了shiro权限数据,导致访问项目A,项目B报无权限,反之亦然,通过对redis的了解,现找到解决办法,如下: ...

    本人有多个项目部署在同一台服务器,共用一个redis服务,而且这几个项目的结构也是一直的,都用redis缓存了shiro权限数据,导致访问项目A,项目B报无权限,反之亦然,通过对redis的了解,现找到解决办法,如下:

    redis存在0-15共16个库,在spring配置里,对不同项目配置不同数据库,代码如下:

    其中database在0-15里面随意选取一个,问题解决,记录下来以备日后参照。

    <bean id="jedisConnectionFactory"
       class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
       <property name="hostName" value="127.0.0.1" />
       <property name="password" value="" />
       <property name="database" value="5"/>
       <property name="port" value="6379" />
       <property name="poolConfig" ref="poolConfig" />
    </bean>


     

    展开全文
  • 一台服务器启动多个tomcat 1、解压相同两tomca服务器,找到其中一个服务器安装目录conf文件下的server.xml,三端口: &lt;1&gt;8005为关闭服务器端口 &lt;2&gt;8080http请求端口 &...

    一、一台服务器启动多个tomcat

      1、解压相同两个tomca服务器,找到其中一个服务器安装目录conf文件下的server.xml,三个端口:

      <1> 8005为关闭服务器端口

      <2>8080http请求端口

      <3>8009为AJP端口

      以上三个端口都要修改与其他tomcat不一样

     2、修改start.bat和shutdown.bat,最上方加入set CATALINA_HOME=当前tomcat路径。

    二、一台toncat部署多个项目

    1、修改log4j.properties下的日志存放目录,要与其他项目区分开

    2、修改j2cahce下的缓存目录(ehcache.xml),与其他目录区分开

     

    展开全文
  • 一台服务器部署多个项目

    千次阅读 2017-12-26 14:14:06
    新建两文件夹, 然后上传war到这两文件夹下面解压就好了,mkdir project1 mkdir project2unzip project1.war 然后上传两tomcat文件夹mkdir tomcat-project1 mkdir tomcat-project2把整个tomcat放到这里面, 然后...

    一一对应的需求
    新建两个文件夹, 然后上传war到这两个文件夹下面解压就好了,

    mkdir project1
    mkdir project2
    unzip project1.war 

    然后上传两个tomcat文件夹

    mkdir tomcat-project1
    mkdir tomcat-project2

    把整个tomcat放到这里面,
    然后修改/conf/server.xml
    文件里的端口, 避免端口冲突

     <Connector executor="tomcatThreadPool"
                   port="10090" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="10443" URIEncoding="UTF-8" />
      #修改上方的port

    然后修改/Catalina/localhost/ROOT.xml这个文件

    <Context path="" docBase="/data/project1" reloadable="true">
      <Resource name="jdbc/project1"
                auth="Container"
                type="javax.sql.DataSource"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost/project1?useUnicode=true&amp;characterEncoding=UTF-8"
                username="project1"
                password="project1123"
                maxActive="10"
                maxIdle="3"
                minIdle="1"
                maxWait="60000"
                testOnBorrow="false"
                testOnReturn="false"
                testWhileIdle="true"
                validationQuery="select 1"
                validationQueryTimeout="1"
                timeBetweenEvictionRunsMillis="900000"
                numTestsPerEvictionRun="10"
                minEvictableIdleTimeMillis="1800000" />
    </Context>

    修改docBase的路径就好了

    export JAVA_HOME=/usr/java/jdk1.8.0_152
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
    
    CATALINA_BASE=/data/tomcat-c2c-trade
    CATALINA_HOME=/data/tomcat-c2c-trade
    export CATALINA_BASE CATALINA_HOME
    CATALINA_2_BASE=/data/tomcat-c2c-user
    CATALINA_2_HOME=/data/tomcat-c2c-user
    export CATALINA_2_BASE CATALINA_2_HOME
    TOMCAT_HOME=/data/tomcat-c2c-trade
    export TOMCAT_HOME
    TOMCAT_2_HOME=/data/tomcat-c2c-user
    export TOMCAT_2_HOME
    
    export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/openssl/bin:$PATH

    修改/etc/profile

    Linux下部署多个Tomcat
    1.环境:
    1.1.Centos 5.0
    1.2.apache-tomcat-6.0.18

    2.需要解决一下几个问题
    2.1.不同的tomcat启动和关闭监听不同的端口
    2.2.不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。

    3.解决步骤:

    3.1.修改/etc目录下的profile文件,添加一组java环境变量,和两组CATALINA环境变量;修改后的profile文件示例如下:
    JAVA_HOME=/usr/java/jdk
    CLASSPATH= JAVAHOME/lib/tools.jar: JAVA_HOME/lib:$JAVA_HOME/bin
    export JAVA_HOME CLASSPATH
    CATALINA_BASE=/u01/app/apache-tomcat-6.0.18
    CATALINA_HOME=/u01/app/apache-tomcat-6.0.18
    export CATALINA_BASE CATALINA_HOME
    CATALINA_2_BASE=/u01/app/apache-tomcat-shanghai
    CATALINA_2_HOME=/u01/app/apache-tomcat-shanghai
    export CATALINA_2_BASE CATALINA_2_HOME
    TOMCAT_HOME=/u01/app/apache-tomcat-6.0.18
    export TOMCAT_HOME
    TOMCAT_2_HOME=/u01/app/apache-tomcat-shanghai
    export TOMCAT_2_HOME

    PATH= JAVAHOME/bin: PATH
    export PATH

    3.2.第一个安装在/u01/app/apache-tomcat-6.0.18处的tomcat,保持解压后的原状不用修改。修改第二个安装在/u01/app/apache-tomcat-shanghai处的tomcat。需要修改两个地方:
    3.2.1.修改server.xml配置和第一个不同的启动、关闭监听端口。修改后示例如下:
    为了不重复,修改了4个端口号
    8005→9005
    8009→9009
    8080→9080
    8443→9443

    3.2.2.修改bin下的startup.sh和shutdown.sh。修改后的示例如下:(同样的修改)
    export JAVA_HOME=/usr/jdk
    export PATH= PATH: JAVA_HOME/bin
    export CLASSPATH= JAVAHOME/libexportCATALINAHOME= CATALINA_2_HOME 利用profile中第二组设置
    export CATALINA_BASE=$CATALINA_2_BASE 利用profile中第二组设置

    3.2.3 修改bin下的catalina.sh
    该文件中所有CATALINA_BASE和CATALINA_HOME都改成上面profile文件中定义的
    CATALINA_2_BASE和CATALINA_2_HOME

    4.修改完毕后,source /etc/profile。可能是因为修改了profile文件的缘故?

    5.分别进入两个tomcat的bin目录,启动tomcat–./startup.sh

    6.然后访问http://localhost:8080http://localhost:9080 都可以看到熟悉的tomcat欢迎界面。

    7.如果想启动多个可以依此法类推……

    展开全文
  • 同一台服务器部署两套项目,用到不同的域名。并且端口都是443默认端口。 解决办法: 1、配置nginx反向代理来解决。 2、登录阿里云后,进入SSL证书(应用安全),此证书需与域名绑定。然后下载对应的证书(选择Nginx...
  • 由于一台服务器上使用Tomcat部署多个WEB项目,而项目因为用到框架都是一样的,导致同时运行,session相互冲突,这登录后,那个就得重新登录,造成了使用不方便,解决办法如下: 在server.xml文件,host的标签页下...
  • 如何在一台服务器部署多个项目,并且共用一个域名: 1:将nginx部署到linux下的/usr/local文件夹下 2:在nginx/conf文件夹下创建一个文件夹叫Assist,在Assist文件夹下创建配置文件Assist.conf Assist.conf的配置...
  • 一台JBoss服务器同时部署多个项目war包

    千次阅读 热门讨论 2018-05-31 14:32:54
    在公司做的项目是使用Jboss-eap服务器进行部署后端项目所打出来的war包,在没有研究这技术点之前,是一台服务器部署一个项目的war包.所以如果是多个项目的话,那么就需要申请台服务器,非常的浪费资源,所以就要...
  • 1、tomcat5修改方法 在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数 Linux JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘ win set JAVA_OPTS=”-Dorg.apache....
  • #项目一,路径替换成自己的 location / { root /var/local/web/sd_TextDataLablePlat1.0; index index.html; try_files $uri $uri/ /index.html; } #项目二,路径替换成自己的 location /dataplatform { ...
  • 首先安装JDK+Tomcat和配置好环境变量,部署一个项目是比较简单,本文主要是针对部署第二个项目的时候出现的一些问题和解决办法进行叙述。可能解决办法有很种,目的都是为了解决遇到的问题。我们公司一直以来采用...
  • 实战在两台服务器部署项目

    千次阅读 2019-05-22 15:54:34
    装了win10的同等配置的虚拟机,两个服务器一个局域网内 。暂且称为服务器A,服务器B。服务器A安装tomcat,部署应用。服务器B安装mysql和redis数据库。 安装服务器环境 服务器A 安装jdk1.8环境 打开环境...
  • 、Tomcat介绍Tomcat是Apache 软件基金会(Apache SoftwareFoundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范...
  • 1一个tomcat下同时部署个项目多个项目可以参考) 1.1项目都放在webapps内(共用一个端口) 2)处理重复jar包。 3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml中进行修改 4)启动tomcat 2,一台...
  • 台服务器部署多个节点

    万次阅读 2017-05-15 09:55:20
    台服务器部署多个节点
  • 一台服务器如何部署多个tomcat和项目(最详细的图文教程!!!)前言二、搭建步骤1.tomcat服务运行必须依赖jdk,所以要先进行jdk安装及环境变量的配置,没有配置好的同学请参考下链接文章2.进行tomcat环境变量配置3....
  • 前后端分离项目部署(部署同一台服务器) 博主现在参与的项目是前后端分离的,前端是用vue写的并用npm构建的,后端是用java写的用maven构建的,但是前端和后端在同一个项目中,之前的部署方式是前端代码在本地调试好...
  • 望大神解惑,把同一个项目部署多个服务器就叫集群吗? ????
  • 之前上学的时候,基本不怎么用这种方法,一个web服务器部署多个项目。但是工作了以后就不一样了,可能经常会遇到自己同时搞多个项目的情况。这样放在你面前的解决方案基本有两种,种是我们安装多个web服务器,然后...
  • 一台服务器部署多个tomcat

    千次阅读 2018-08-09 20:37:53
    最近在部署个项目,要求在新的一台Linux服务器上同时部署多个Tomcat,由于之前只部署一个Tomcat的经验,所以在期间踩了不少坑,所幸是最后还是部署成功了。话不说,接下来就详细介绍下方法。 服务器配置: ...
  • 一台服务器部署多个redis

    千次阅读 2020-02-26 13:11:32
    通常开发项目会存在开发、测试、线上等不同环境,此时我们可以考虑在同一台服务器部署多个redis。 、安装redis 首先在服务器上安装redis,若已安装,忽略这一步。安装过程略。 二、新建redis配置文件 根据原...
  • 在给客户部署eureka的时候,出现了一个问题,就是在三台服务器A、B、C上分别部署项目服务器分配:  A:注册中心和主程序入口   B:人脸模块  C:设备信息管理 在本地测试时,各部分互相调用没有问题,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,699
精华内容 76,279
关键字:

多台服务器部署同一个项目