Linux服务器同时运行两个项目

  • 需求:测试服务器需要同时运行两个测试项目,然后本人想到安装两个tomcat,同时跑2个项目,复制一份tomcat,将端口号改成80,其它端口分别加一,并在阿里云服务器上开放相关端口并且下载好ssl证书配置到tomcat的server.xml中。
  • 配置2个tomcat参考博客:https://blog.csdn.net/justinqin/article/details/78563113
    • 配置环境变量
#vi /etc/profile
中加入如下内容:
#tomcat1
CATALINA_HOME=/home/commodity
CATALINA_BASE=/home/commodity
TOMCAT_HOME=/home/commodity
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
#tomcat2
CATALINA_HOME2=/home/mall
CATALINA_BASE2=/home/mall
TOMCAT_HOME2=/home/mall
export CATALINA_BASE2 CATALINA_HOME2 TOMCAT_HOME2
然后保存退出使生效
#:wq
#source /etc/profile
    • 在第二个tomcat中的catalina.sh中添加

 

export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
    • 同时启动2个tomcat,出现问题:第二个tomcat启动时卡在“INFO: Deploying web application directory ......”
    • 解决办法参考博客:https://www.cnblogs.com/mycifeng/p/6972446.html操作:找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:securerandom.source=file:/dev/./urandom,处理完后两个tomcat都能同时启动了
  • 出现问题:两项目中端口修改为80的项目可以通过ssl配置的https访问,另外一个没改端口的项目不可以通过https+8080端口访问(可以通过http+8080访问)(两tomcat用的ssl证书相同)不可通过https访问的项目报错如下:
18-Oct-2018 13:54:27.298 INFO [http-nio-8080-exec-2] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1045)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
  • 需求解决办法:一个tomcat下放2个war包,启动tomcat,通过项目名不同访问不同项目。
  • 或将ssl证书配置到nginx,通过nginx代理转发访问不同的tomcat。

 

posted @ 2018-10-18 17:54  21karat  阅读(614)  评论(0编辑  收藏  举报