精华内容
下载资源
问答
  • 像我们项目,就是用的假分布式,在3个Tomcat下的webapp目录放置相同的项目。然后通过台服务器分发到不同Tomcat节点来实现假分布式。 然后每次上线的时候,都要同时更新3台服务器下的webapp,深受其累。所以,现在...

    “鸳鸯被里成双夜,一树梨花压海棠”
    像我们项目,就是用的假分布式,在3个Tomcat下的webapp目录放置相同的项目。然后通过一台服务器分发到不同Tomcat节点来实现假分布式。
    然后每次上线的时候,都要同时更新3台服务器下的webapp,深受其累。所以,现在只需一个配置文件就可以解决这个问题;
    首先,要在tomcat/conf下新建一个Catalina目录,下面继续建一个目录localhost,然后在其下面建个文件,可以用项目名命名,例如:project.xml。
    在xml文件里面下上你的项目路径,Tomcat就会自动找到该项目然后启动。
    xml文件如下:

    <Context path="/project" reloadable="true" docBase="/appdata/project" workDir="/appdata/tomcat/work"/>  
    展开全文
  • IDEA 如何使用一个tomcat运行多个项目

    千次阅读 2018-11-08 17:36:31
    首先先说明生成war包的方式: 1.先进入项目构建中:  2....   ... 3....5.添加其他项目war包并加入本项目执行器中(如果不加入执行器中,tomcat执行时只执行执行器中所...由此便将两个项目放入同一个tomcat,执行运行 ...

    首先先说明生成war包的方式:

    1.先进入项目构建中:

     2.生成exploded文件

     

     3.生成war包

     

     4进入tomcat设置界面中,添加war包

    5.添加其他项目war包并加入本项目执行器中(如果不加入执行器中,tomcat执行时只执行执行器中所管理的项目,其余项目即使假如到tomcat中也不会执行)

     

    由此便将两个项目放入同一个tomcat,执行运行 tomcat即可!

    展开全文
  • 相信很多人都听过nginx,这小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘段百度...

    相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。

    说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:

    关注公众号,我们一起学java
    关注公众号,我们一起学java

    Html代码  收藏代码

    1. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。  

      这里讲得很直白。反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处理的是tomcat。

    说到上面的方式,也许很多人又会想起来,这样可以把静态文件交由nginx来进行处理。对,很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。

    闲话就不多说了,我们直接来看看nginx怎么使用。

     

    1)要用到的软件当然要下载啦。到nginx官网下一个。http://nginx.org/en/download.html可以到这里去下。我现在用的版本是1.1.7,但基本上以后的版本都兼容,而且我们用到的并不涉及到太底层的,应该不会有什么变化。

    这里,由于我的是windows,当然下windows版啦。下完后首先要启动吧。进入到nginx文件夹,直接start nginx就OK了。

    比如我下载后放在D:\software\developerTools\server\nginx-1.1.7,直接cmd后cd D:\software\developerTools\server\nginx-1.1.7,有些不习惯命令行的可能会奇怪,它没有进行到那个文件夹。windows并不会在分区间跳转,除非你自己指定了。所以我们要直接d:如下:

    然后,我们直接start nginx,这里也许你会看到一个窗口一闪而过,根据我们使用tomcat的经验,如果一闪而过,证明有错误了,是吧?但实际上不是。

    此时我们打开任务管理器,可以看到两个nginx.exe在那里好好的。这说明我们已经启动了,至于为什么两个,我们这里不深究。

    现在,我们已经启动了nginx,这时就可以启动tomcat,想着直接访问http://localhost就可以直接访问tomcat了。

    先不急,我们来看看启动后的nginx是怎样的。直接访问http://localhost可以看到:

     

         我们可以看到nginx启动成功,现在访问是直接进到nginx的目录里面了。

    那么这些实际上是在哪里配置的。这就涉及到nginx的一个重要配置文件nginx.conf了。

     

    2)我们可以看到nginx文件夹内有一个conf文件夹,其中有好几个文件,其他先不管,我们打开nginx.conf,可以看到一段:

      这段代码在server里面,相当于一个代理服务器,当然可以配置多个。

    下面我们仔细来分析一下:

    listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

    server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

    location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

    root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

    index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

    下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。

     

    那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:

    Java代码  收藏代码

    1. server_name localhost:8080;  
    2.   
    3. location / {  
    4.     proxy_pass http://localhost:8080  
    5. }  

      我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。

    此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。

    我们直接运行:

    Html代码  收藏代码

    1. nginx -s reload  

    高兴得太早了,我们发现有一个错误:

      什么来的,45行发现错误,不希望在那一行找到},于是我们仔细找,发现我们加入的proxy_pass很奇怪,没有;号结尾,这就是问题了,直接修改,然后再运行一下,发现没错误,OK了。

    如果不想直接加载,而只是想看看自己的配置文件有没有问题,可以直接输入:

    Xml代码  收藏代码

    1. nginx -t  

    这可以检查配置文件中是否有错。 下面我们所有的修改都假设我们修改完成后运行了nginx -s reload进行重新加载配置文件,请注意。

     

    一切没问题了,然后我们再重新打开http://localhost,我们看到下面的页面:

     

    这时,我们发现它并不是刚才的welcome页面了,而是tomcat的管理页面了,不管我们点击什么链接都是没问题的,相当于直接访问http://localhost:8080一样。

     

    3)上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。

    下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。

    这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难:

    Xml代码  收藏代码

    1. location ~ \.jsp$ {  
    2.         proxy_pass http://localhost:8080;  
    3. }  
    4.           
    5. location ~ \.(html|js|css|png|gif)$ {  
    6.     root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;  
    7. }  

      我们先要去掉之前配的location /,避免全部请求被拦截了。

    然后我们再来看看http://localhost

      当我们不指定jsp页面的时候,它会出现找不到,因为,此时并没有相应的location匹配,所以就会有404错误,这时就跳到了nginx自定义的error页面去了。

    而当我们用http://localhost/index.jsp去访问时,我们看到了熟悉的页面:

      而且图片那些都显示正常,因为图片是png的,所以直接在tomcat/webapps/ROOT目录下直接查找,当然,如果我们点击Manager Application HOW-TO这个链接,我们发现:

      它还是找不到,为什么呢?因为这是个html页面,但它并不在ROOT目录下,而是在docs目录下,但当我们匹配html时,我们却到ROOT目录下去找,所以还是找不到这个页面。

     

    一般情况下,如果我们需要用nginx来进行静态文件伺服,一般都会把所有静态文件,html,htm,js,css等都放在同一个文件夹下,这样就不会有tomcat这样的情况了,因为tomcat下的是属于不同的项目,这个我们就没办法了。

     

    3)有些人会说,这些都只会找一台服务器,但如果我们想在一台服务器挂了的时候,自动去找另外一台,这怎么办?这实际上nginx都考虑到了。

    这时,我们之前用的proxy_pass就有大用途了。

    我们把之前的第一个例子,即全部都代理的修改一下:

    最后修改如下:

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080;  
    3. }  
    4.   
    5. server{  
    6.         location / {  
    7.            proxy_pass http://local_tomcat;  
    8.         }  
    9.         #......其他省略  
    10. }  

      我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。

    我们还是直接来http://localhost,还是和第一个一样的效果,所有链接都没问题,说明我们配置正确。

    upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。

    我们刚才说可以在一个服务器挂了的情况下连到另外一个,那怎么弄呢?

    其实很简单,在upstream中的local_tomcat中配置多一个server。比如我现在弄多一个jetty,端口在9999,所以我们配置如下:

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080;  
    3.     server localhost:9999;  
    4. }  

      此时,我们关闭tomcat,而只开jetty。我们来运行http://localhost看看效果:

      我们看到它请求到了jetty的页面,但由于jetty的机制,这时没有显示jetty主页,这个我们先不管。但我们的在一个服务器挂的情况下自动使用另外一个的功能实现了。

     

    但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大。

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080 weight=1;  
    3.     server localhost:9999 weight=5;  
    4. }  

      这时我们给了jetty一个更高的权值,让它更有机会访问到,实际上当我们刷新http://localhost访问的时候发现jetty访问机率大很多,tomcat几乎没机会访问,一般情况下,如果我们必须这样用,不要相关太大,以免一个服务器负载太大。

    当然,server还有一些其他的元素,比如down表示暂时不用到该服务器等等。这些可以参考nginx的wiki。也许写了一大堆,有人会有问题,那nginx怎么关闭呢?这倒是个问题,其实直接运行nginx -s stop就可以关闭了。

    关注公众号,我们一起学java
    关注公众号,我们一起学java
    展开全文
  • Linux同时运行多个Tomcat

    千次阅读 2017-05-22 17:00:53
    个tomcat都有自己的端口和监听的端口,那么要多个运行,就必须使用不同的端口,具体怎么操作呢,看下面: 1)需要JDK作为支撑,这里就不错处理了,我这里的目录:/usr/local/jdk7 2)首先下载对应的linux下的...

    背景:起初是这样的:在一个tomact里放了好多个web项目,启动过,过一段时间,发现不能正常访问,现象就是感觉tomcat已经关闭了。查看日志发现:tomcat报错了<java.lang.OutOfMemoryError:PermGen space>,这才知道内存溢出了。FK!!!原来的放的项目太多了,这样就需要配置多个tomcat。

    每个tomcat都有自己的端口和监听的端口,那么要多个运行,就必须使用不同的端口,具体怎么操作呢,看下面:

    1)需要JDK作为支撑,这里就不做处理了,我这里的目录:/usr/local/jdk7

    2)首先下载对应的linux下的tomcat版本,存放于2个目录,这里以/usr/local/tomcat01和/usr/local/tomcat02为例,多个以此类推。这里tomcat01为了统一,就也把默认配置改掉了。

    3)首先,将tomcat02的根目录配置到/etc/profile中,如下:

    export JAVA_HOME=/usr/local/jdk7
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH
    
    CATALINA_BASE=/usr/local/tomcat01
    CATALINA_HOME=/usr/local/tomcat01
    export CATALINA_BASE CATALINA_HOME
    
    CATALINA_2_BASE=/usr/local/tomcat02
    CATALINA_2_HOME=/usr/local/tomcat02
    export CATALINA_2_BASE CATALINA_2_HOME
    
    TOMCAT_HOME=/usr/local/tomcat01
    export TOMCAT_HOME
    TOMCAT_2_HOME=/usr/local/tomcat02
    export TOMCAT_2_HOME

    配置完成后,执行source /etc/profile 使之生效。

    4)修改对应tomcat下conf目录下的server.xml文件,指定其对应端口号。

    tomcat01的,修改如下:第一个地方:修改关闭监听端口,默认8005,修改为8051,当然你可以改成其他任意没有用过的端口号。

    <Server port="8051" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
    第二个地方:修改http监听端口,默认8080,这里改成8081,我这里加了下其他配置。
    <Connector
             port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
             URIEncoding="UTF-8"
             minSpareThreads="1000"
             maxSpareThreads="4000"
             enableLookups="false"
             disableUploadTimeout="true"
             connectionTimeout="20000"
             acceptCount="4000"
             maxThreads="5000"
             maxProcessors="5000"
             minProcessors="100"
             useURIValidationHack="false"
             compression="on"
             compressionMinSize="2048"
            compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
             redirectPort="8443" />
    第三个地方:修改 AJP 的对应端口,默认8009,修改为9080:

    <Connector port="9080" protocol="AJP/1.3" redirectPort="8443" />
    好了,这样就把第一个的server.xml配置修改完成了。第二个tomca02的配置类似,3个端口我设置的是:8052,8083,9081

    5)修改tomcat/bin下的启动脚本,其实就是添加几行代码,如在tomcat01的startup.sh和shutdown.sh文件中添加如下代码:

    # -----------------------------------------------------------------------------
    # Start Script for the CATALINA Server
    # -----------------------------------------------------------------------------
    
    export JAVA_HOME=/usr/local/jdk7
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    export CATALINA_HOME=$CATALINA_HOME
    export CATALINA_BASE=$CATALINA_BASE
    
    # Better OS/400 detection: see Bugzilla 31132
    [注:]上下被#注释掉的地方,是为了方便大家找到添加的位置,是原来文件中的内容,我们这里添加的是export开头的代码。

    那么对应的tomcat02配置如下;

    export JAVA_HOME=/usr/local/jdk7
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    export CATALINA_HOME=$CATALINA_2_HOME
    export CATALINA_BASE=$CATALINA_2_BASE
    哦了,这样就完成了linux中多个tomcat的配置。下面就可以在每个tomcat/bin目录下分别执行./startup.sh了。最后在浏览器中分别输入http://localhost:8081和http://localhost:8083就可以看到,已经配置成功了。

    ###如果您觉得帮到您,请顶一下。谢谢呢!###





    展开全文
  • linux服务器上部署项目同时运行两个或多个tomcat

    万次阅读 多人点赞 2018-08-04 10:03:30
    在阿里云服务器上部署项目的时候,想使用阿里云提供的负载均衡服务并创建两个监听(如图),   但需要台服务器提供两个端口,于是...于是,就查询实现linux服务器上同时运行两个或多个tomcat的方式,下面以同...
  • 一个Tomcat配置多个Service多个项目

    千次阅读 2015-03-24 14:13:14
    Tomcat配置多个Service,多个同名的应用运行在一个tomcat下 网站项目中有时候会碰到,每个网站一个网站后台程序,偏偏因为某种原因,这后台程序的名称还是一样的,比如都叫 app.war,这样如果有2个或以上网站需要...
  • 一个tomcat部署多个项目

    万次阅读 热门讨论 2018-10-17 13:50:36
    在开发项目中,有时候我们需要在同一个tomcat中部署多个项目,小编之前也是遇到了这样的情况,碰过不少的壁,故整理总结如下,以供大家参考。(以Linux为例,其他系统同样适用)   、首先将需要部署的项目打成...
  • 最近手头有两个项目需要本地运行联调,在mac上死活都不能同时运行,不管先启动哪一个,启动第二个的时候就会报错,端口已经改过。 28-Jun-2017 11:10:54.274 严重 [main] org.apache.catalina.core.StandardServer....
  • 1,一个tomcat同时部署两个项目多个项目可以参考) 1.1项目都放在webapps内(共用一个端口) 1)把两个项目都放在webapps下。 2)处理重复jar包。 3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml...
  • tomcat一运行多个java项目

    千次阅读 2016-03-02 14:48:31
    以前还以为tomcat只能运行一个java项目,但是后来经过一些了解,可以通过配置的方式添加多个java项目。  项目打包放入webapps文件夹中,然后修改conf文件夹中的server.xml >>>>看下面的配置就一目了然啊!!   ...
  • 一个Tomcat部署多个项目

    万次阅读 多人点赞 2017-07-18 11:28:30
    同一个Tomcat一个端口 部署多个项目第一步:把待发布的多个项目.war文件放入tomcat的webapps文件下下 第二步:修改 $TOMCAT_HOME\conf 下的server.xml文件 在server.xml文件中新增节点,一个节点代表一个...
  • Linux配置两个或多个Tomcat,一个Tomcat对应部署一个项目即可。文章以配置2个tomcat为例,如果想启动多个可以依此法类推…… 2.1 配置profile #vi /etc/profile 加入以下代码(tomcat路径要配置自己实际的...
  • 怎么同时运行个tomcat?

    千次阅读 2019-05-23 00:13:43
    这几天由于在搞那个jenkins的自动部署项目所以要使用到两个tomcat(因为一个tomcat不能同时开着两个项目),一个作为jenkins服务器,一个作为项目部署服务器,所以找了一些资料看看一台电脑怎么运行个tomcat。...
  • 台机器多个tomcat同时运行,并且设置开机自动启动
  • 今天想在公司的一个服务器上加一个 tomcat运行自己的工程做测试,因为此服务器上之前有一个tomcat,为了不冲突,又重新下载了一个。然后就直接./startup.sh启动了,一直启动失败,也看不到具体报错信息。于是,找到...
  • 台机器同时部署运行多个Tomcat

    千次阅读 2015-10-27 18:56:29
    #######################台机器同时部署运行多个Tomcat ############################### 注:下文介绍为两个tpmcat 环境:apache-tomcat-8.0.24.tar.gz  CentOS release 6.5 (Final) 1:使用免安装的tomcat...
  • 一个Tomcat 部署多个项目

    千次阅读 2018-04-20 19:17:04
    (1)同一个Tomcat一个端口 部署多个项目 直接把多个项目的war包放在tomcat下webapps文件夹下 端口号无修改,默认http://localhost:8080访问 第二步:修改 $TOMCAT_HOME\conf 下的server.xml文件 ...
  • 网站项目中有时候会碰到,每个网站一个网站后台程序,偏偏因为某种原因,这后台程序的名称还是一样的,比如都叫 app.war,这样如果有2个或以上网站需要用各自的app.war,那么就需要安装多个tomcat,资源浪费比较大。...
  • 《Centos7 在同台服务器中,同时运行多个Tomcat》 --------------------------------------------------------- 分隔符 --------------------------------------------------------- tomcat...
  • 一个Myeclipse同时配置多个Tomcat

    千次阅读 2015-08-06 11:12:58
    一个Myeclipse同时配置多个Tomcat 这段时间自己在学习一些东西,学习测试用的小项目和工作中开发的项目在同一个tomcat中,每次启动太麻烦,所以想在同一个MyEclipse中配置两个tomcat,一个用于开发,...
  • 一、了解archive war包和exploded war包的区别 我们在使用IDEA在Tomcat中部署项目时会出现两个选择,分别是archive war和exploded war,如下图: 只是从字面上理解一个是归档...在项目/target/目录下有一个war包...
  • MyEclipse 多项目对应配置多个Tomcat

    千次阅读 2016-06-30 20:34:43
    MyEclipse 多项目对应配置多个Tomcat 如果多个项目放在个Tomcat下,在MyEclipse启动Tomcat时,会把其他项目也一起启动,速度会慢。 现在设置多个项目,分别对应个Tomcat。 如果你设置多个Tomcat并行...
  • 1,tomcat解压包,通过startup.bat(windows系统)启动。...1.1 下载好tomcat后解压,在tomcat根目录下复制一个webapps1(一个webapps对应一个端口),同时在当前的conf文件夹里复制一个复制一个 1.2我准备了两...
  • 在同一个tomcat部署多个打包成war包的项目导致启动失败,报错如下: 报错信息 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 24-Dec-2018...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 152,025
精华内容 60,810
关键字:

多个tomcat同时运行一个项目