需求:测试服务器需要同时运行两个测试项目
然后本人想到安装两个tomcat,同时跑2个项目,复制一份tomcat,将端口号改成80,
其它端口分别加一,并在阿里云服务器上开放相关端口并且下载好ssl证书配置到tomcat的server.xml中
配置2个tomcat参考博客:https://blog.youkuaiyun.com/justinqin/article/details/78563113
1.配置环境变量
#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
2.在第二个tomcat中的catalina.sh中添加
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
3.同时启动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卡在最后一步。
需求解决办法:一个tomcat下放2个war包,启动tomcat,通过项目名不同访问不同项目
这个问题先记录下,目前先处理需求,后期有时间找找博客看看能不能完善下