【发布时间】:2018-01-13 02:04:34
【问题描述】:
这个问题是 Tomcat 8.5 独有的,其他答案是针对 7 的,不能按描述工作
首先,我已经研究了 20 个小时的 tomcat 文档和在线问题。我已经从头开始构建服务器大约十次来学习该过程并尝试编写清晰的指南,以使服务器启动并运行以运行多个 Spring Boot Web 应用程序。
我目前无法让 tomcat 在端口 80 上运行,因此域名末尾没有“8080”。它可以在 8080 端口上运行。
“netstat -lnp grep 80”向我展示了这个:
enterProto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:*
LISTEN 449/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:*
LISTEN 1/init
tcp 0 0 0.0.0.0:22 0.0.0.0:*
LISTEN 143/sshd
tcp6 0 0 :::8001 :::*
LISTEN 139/httpd
tcp6 0 0 127.0.0.1:8005 :::*
LISTEN 281/java
tcp6 0 0 :::8009 :::*
LISTEN 281/java
tcp6 0 0 :::21 :::*
LISTEN 147/vsftpd
tcp6 0 0 :::22 :::*
LISTEN
所以没有使用端口 80。 systemctl status tomcat.service = running
防火墙-cmd --list-all 公开(活跃) 目标:默认 icmp 块反转:否 接口:venet0 来源: 服务:dhcpv6-client ssh 端口:8001/tcp 80/tcp 20/tcp 协议: 伪装:没有 转发端口: 源端口: icmp 块: 丰富的规则:
在公共区域开放端口。
我目前正在尝试的方法是更改tomcat/conf/server.xml中的端口
这里是我改变它的地方:
{<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
}
nmap 和在线工具说端口已关闭,但我相信这是因为没有使用该端口。只是我读过的,所以不确定。
iptables 中也没有规则,因此没有其他端口块。
显示的网页显示“无法访问此站点”
任何帮助都将不胜感激,因为我已经花了 20 个小时研究服务器设置,但仍然对如何真正检查为什么它不起作用但为什么它在端口 8080 上起作用感到困惑。
我正在尝试通过 tomcat 运行多个 webapp。我计划将主机详细信息添加到 server.xml 的底部,我已在端口 8080 上成功完成此操作,但在端口 80 上没有与上述结果相同。
这是一个与以前的问题类似的问题,但答案不起作用我已经全部尝试过了。
【问题讨论】:
-
我强烈建议不要在端口 80 上运行 tomcat,而是使用像 Apache 或 Nginx 这样的反向代理。对于这种类型的部署,反向代理非常常见nginx.com/resources/admin-guide/reverse-proxy
-
这不是重复的,因为其他选项都不起作用。当我不需要的时候为什么要运行 Apache?我读过有办法只运行tomcat吗?这就是我想要做的我想节省资源以最小的负载运行大型业务应用程序,同时保持安全性。我不会从 nginx 开始,因为研究中的 httpd 性能更好。请详细说明并仅提供一个有效的答案,因为我已经尝试了 20 多个教程但均未成功。
-
在 linux 上,低于 1000 的端口是特权端口,需要以 root 身份运行。 Tomcat 永远不应该以 root 身份运行,因为如果有人在您的应用程序中发现了漏洞,他们将获得完整的系统访问权限。您真的确实想使用反向代理并将tomcat留在8080 serverfault.com/questions/835861/…
-
虽然我现在已经使用 iptables 转发了我的端口,但我已经做了更多的研究,我现在明白反向代理会增加更多的安全性。谢谢这是一个很好的视频解释:youtube.com/watch?v=2fL8Otb9mTE