在谷歌云平台上部署tomcat

我在谷歌云平台上装好jdk、配置环境变量后,解压tomcat压缩包,直接启动tomcat下的startup.sh,结果浏览器中就是无法访问,我谷歌云的配置是Ubuntu 16.04.4 LTS,已提高到3.75G内存,防火墙规则是对任意ip:port开放所有端口,启动tomcat时的提示如图,跟在自家服务器上的操作应该是一样的,但在浏览器上就是无法访问,谁能告诉一下是怎么回事么?

而且在logs/catalina.out里也没有tomcat启动成功的提示,最后一行一直是
INFO: Deploying web application directory /environment/apache-tomcat-7.0.79/webapps/docs

阅读 2.6k
2 个回答

证实是由于JRE的一个已知BUG导致的。

以下引自关于Ubuntu14.04无法启动Tomcat的解决方案 :

【问题分析】
Tomcat以及Hadoop使用Java开发,使用了java.security.SecureRandom的API。此API在某些JRE中默认使用/dev/random生成,而/dev/random接收CPU温度、键盘等硬件杂讯来生成熵。因为云服务器是采用虚拟化技术的云服务器环境,很难感知CPU温度等信号则很难生成熵,因此cat/dev/random几乎阻塞而导致Tomcat、Hadoop 启动受阻。
【规避措施】
修改JRE配置
修改原/$JAVA_HOME/jre/lib/security/java.security中的securerandom.source=file:/dev/urandomsecurerandom.source=file:/dev/./urandom

首先查看进程是否真正启动

ps -aux | grep tomcat #查看tomcat进程是否启动

如果没有输出tomcat相关的信息,那么有可能出现端口冲突问题,而导致tomcat down掉,尝试修改tomcat配置文件的对外端口号再次启动tomcst查看是否正常。
另一种方法,查看端口占用,8080为tomcat http默认端口,如果没有修改过,那么可以执行

lsof -i:8080。#查看8080端口被谁占用

保证cms已接入公网,换句话说cms可以用公网ip访问。

再有一种特殊情况,你的tomcat不完整,并未包含tomcat相关web实例项目,在tomcat home查看

  ls $tomcathone/webapps  #查看是否有相关tomcat web实例
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题