为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Google Compute Engine 中使用 80 端口启动 tomcat

无法在 Google Compute Engine 中使用 80 端口启动 tomcat

慕森卡 2021-09-12 15:44:50
我将 Google Compute Engine 实例与 CentOS7 和 Tomcat 8 一起使用。Tomcat 服务器在端口 8080 下工作正常,但是当我将端口更改为 80 时发生套接字异常。Tomcat 异常是,org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:875)        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)        at org.apache.catalina.startup.Catalina.load(Catalina.java:632)        at org.apache.catalina.startup.Catalina.load(Catalina.java:655)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:498)        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed        at org.apache.catalina.connector.Connector.initInternal(Connector.java:995)        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)        ... 12 more我的防火墙角色我已经按照 谷歌云计算引擎拒绝通过 apache2 进行外部访问 但没有效果.. 请指教.......
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

正如@gdalm在此处所说,

linux/Unix 上低于 1024 的端口是“特权端口”,需要提升权限才能创建。

当您使用 GCP(Google Cloud Platform)时,您有多种选择。

使用 1024 以上的高端口作为非私有用户并且:

  • 连接到您的 url https://foo:8443 中的那个高端口

  • 使用 GCP 网络或 HTTP/HTTPS 负载均衡器将端口 443 转发到高端口

  • 利用 IP 表将数据包从 443 转发到 VM 实例内的高端口

  • 使用 suid、sudo 或其他方法运行服务

  • 向进程授予 _CAP_NET_BIND_SERVICE_ capabilities(7)。

最后两个选项具有复杂的安全隐患,应尽可能避免。


查看完整回答
反对 回复 2021-09-12
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

一位社区成员之前也遇到过类似的问题。他能够通过运行以下命令来解决他的问题:

sudo setcap cap_net_bind_service+ep /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信