0

我正在使用 tomcat8,并且我已将 cofg/server.xml 中的 http 端口更改为

在 http 连接器中,我已将端口 8080 更改为 80

< Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

我已经重新启动了tomcat,但我收到了这个错误

apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1  11 Sep 2018]
18-Jun-2019 18:20:46.933 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-80"]
18-Jun-2019 18:20:46.961 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-80]]
 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:113)

Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:996)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
        ... 12 more
Caused by: java.net.SocketException: Permission denied
        at java.base/sun.nio.ch.Net.bind0(Native Method)
        at java.base/sun.nio.ch.Net.bind(Net.java:461)

请任何人帮助我如何在端口 80 上启动 tomcat8。我在更改 server.xml 中的端口后出现上述错误

4

1 回答 1

0

端口 80 是一个特权端口。你有几个选择:

  • 使用像 haproxy 这样的代理绑定到端口 80 然后转发到 tomcat 8080
  • 使用 authbind 授予 tomcat 绑定到 80 端口的权限
  • 使用 iptables 内核重定向从 80 到 8080

第二个和第三个是 [略微] 更好的性能,因为它们发生在内核中,但是您只会在真正繁忙的服务器中看到任何类型的延迟或吞吐量增加

于 2019-06-21T19:14:38.513 回答