无法让Tomcat在Google GCP实例上运行

时间:2018-05-21 14:45:43

标签: linux google-cloud-platform tomcat8

我已从标准Tomcat(Google点击部署)图片中启动了Google GCP tomcat实例 这使用Debian 9作为操作系统。 我试图在我的浏览器上进行基本测试,指向IP.ADDRESS:8080,但它超时了。 / etc / tomcat8中的Server.xml告诉我tomcat正在端口8080上运行

tomcat服务的状态如下

    tomcat1@generator1-vm:/etc/tomcat8$ sudo service tomcat8 status
    ● tomcat8.service - LSB: Start Tomcat.
    Loaded: loaded (/etc/init.d/tomcat8; generated; vendor preset: enabled)
    Active: active (running) since Mon 2018-05-21 13:34:38 UTC; 1h 7min ago
    Docs: man:systemd-sysv-generator(8)
    Process: 29722 ExecStop=/etc/init.d/tomcat8 stop (code=exited, status=0/SUCCESS)
    Process: 29764 ExecStart=/etc/init.d/tomcat8 start (code=exited, status=0/SUCCESS)
    Tasks: 16 (limit: 4915)
    CGroup: /system.slice/tomcat8.service
    └─848 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/va
    May 21 13:34:33 generator1-vm systemd[1]: Starting LSB: Start Tomcat....
    May 21 13:34:38 generator1-vm tomcat8[29764]: Starting Tomcat servlet engine: tomcat8.
        May 21 13:34:38 generator1-vm systemd[1]: Started LSB: Start Tomcat..
    lines 1-13/13 (END)

所以这似乎意味着该服务确实正在运行,但当我尝试浏览到IP时,我得到服务超时.ADDRESS:8080 还有什么我可以检查的吗?

1 个答案:

答案 0 :(得分:-1)

可能性是GCP防火墙。创建计算引擎实例(这是您在部署Tomcat服务器时所执行的操作)时,您可以选择启用HTTP和/或HTTPS,这将为您创建这些防火墙规则。但是GCP不会自动为端口8080创建规则,即使Tomcat可能正在使用它。这可能是您的客户超时的原因。

除非您要为所有虚拟机打开端口8080,否则最好的办法是在虚拟机上创建网络标记,然后创建一个防火墙规则,允许来自端口8080的流量传输到任何虚拟机有那个网络标签。首先,编辑您的虚拟机。您可以通过单击屏幕左上角的汉堡菜单以及COMPUTE"中的Web控制台来执行此操作。部分选择"计算引擎"然后" VM实例"。单击您的VM名称,当详细信息页面出现时,单击"编辑"在屏幕的顶部。向下滚动,直到您看到"网络标记"框,然后输入您要使用的任何标签。我建议像" port8080"。然后点击蓝色" Save"屏幕底部的按钮。

再次单击汉堡包菜单,这次是从" NETWORKING"部分选择" VPC网络"然后"防火墙规则"。点击"创建防火墙规则"在屏幕的顶部。给它任何你喜欢的名字。在"网络"下拉菜单选择您的网络,如果您还没有创建任何自定义VPC,则应该只是"默认"。您可以保留优先级。选择" Ingress"方向和"允许"为了行动。对于"目标",选择"指定的目标代码",以及"目标代码"输入您在上面创建的标签(" port8080"或您选择调用它的任何内容)。对于"源过滤器"选择" IP范围",以及"源IP范围"输入0.0.0.0/0(这是"每个人"的简写)。跳过"第二个源过滤器"。对于"协议和端口"选择"指定的协议和端口",并在下面的框中输入" tcp:8080"。然后点击"创建"按钮,你应该很高兴。