如何在端口 80 上 运行 tomcat 8.5 / 删除 8080。tomcat 8.5.16,centos 7 最小安装,托管 24
How to run tomcat 8.5 on port 80 / remove 8080. tomcat 8.5.16, centos 7minimal install, hosting 24
此问题是 Tomcat 8.5 其他答案针对 7 的问题,与描述的不符
首先,我一直在研究 tomcat 文档和在线问题 20 个小时。我已经从头开始构建我的服务器大约十次以了解该过程并尝试编写清晰的指南以启动服务器并 运行ning 用于 运行ning 多个 spring 启动 web应用。
我目前无法在端口 80 上从 tomcat 到 运行,因此域名末尾没有“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状态tomcat.service = 运行宁
firewall-cmd --list-all
public(活跃)
目标:默认
icmp-block-inversion: 没有
接口:venet0
资料来源:
服务:dhcpv6-客户端 ssh
端口:8001/TCP 80/TCP 20/TCP
协议:
化装舞会:没有
转发端口:
源端口:
icmp 块:
丰富的规则:
端口在 public 区域开放。
我目前尝试的方法是更改tomcat/conf/server中的端口。xml
这是我更改的地方:
{<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
}
nmap 和在线工具说端口已关闭,但我相信那是因为没有任何东西在使用该端口。只是我读过的所以不确定。
iptables 中也没有规则,因此没有其他端口块。
显示的网页显示"This site can’t be reached"
任何帮助将不胜感激,因为我已经花了 20 个小时研究服务器设置,但对于如何真正检查为什么它不起作用但为什么它在端口 8080 上起作用仍然感到困惑。
我正在尝试通过 tomcat 运行 多个网络应用程序。我计划将主机详细信息添加到 server.xml 的底部,我已在端口 8080 上成功完成,但在端口 80 上未成功完成,结果与上面相同。
这个问题与之前的问题类似,但答案无效我都试过了。
您必须在 Linux 上启用 AUTHBIND 才能让 tomcat 使用像 80 这样的特权端口,因此在 /etc/default/tomcat8
文件中设置 AUTHBIND=yes
。
另一种解决方案是,使用默认端口 (80) 并使用 iptables 将所有请求从端口 80 重定向到端口 8080:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Centos7 最小化安装可能开启了 SELinux,因此您必须在提升的 shell 中执行以下命令:
setsebool httpd_can_network_connect true -P
此问题是 Tomcat 8.5 其他答案针对 7 的问题,与描述的不符
首先,我一直在研究 tomcat 文档和在线问题 20 个小时。我已经从头开始构建我的服务器大约十次以了解该过程并尝试编写清晰的指南以启动服务器并 运行ning 用于 运行ning 多个 spring 启动 web应用。
我目前无法在端口 80 上从 tomcat 到 运行,因此域名末尾没有“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状态tomcat.service = 运行宁
firewall-cmd --list-all public(活跃) 目标:默认 icmp-block-inversion: 没有 接口:venet0 资料来源: 服务:dhcpv6-客户端 ssh 端口:8001/TCP 80/TCP 20/TCP 协议: 化装舞会:没有 转发端口: 源端口: icmp 块: 丰富的规则:
端口在 public 区域开放。
我目前尝试的方法是更改tomcat/conf/server中的端口。xml
这是我更改的地方:
{<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
}
nmap 和在线工具说端口已关闭,但我相信那是因为没有任何东西在使用该端口。只是我读过的所以不确定。
iptables 中也没有规则,因此没有其他端口块。
显示的网页显示"This site can’t be reached"
任何帮助将不胜感激,因为我已经花了 20 个小时研究服务器设置,但对于如何真正检查为什么它不起作用但为什么它在端口 8080 上起作用仍然感到困惑。
我正在尝试通过 tomcat 运行 多个网络应用程序。我计划将主机详细信息添加到 server.xml 的底部,我已在端口 8080 上成功完成,但在端口 80 上未成功完成,结果与上面相同。
这个问题与之前的问题类似,但答案无效我都试过了。
您必须在 Linux 上启用 AUTHBIND 才能让 tomcat 使用像 80 这样的特权端口,因此在 /etc/default/tomcat8
文件中设置 AUTHBIND=yes
。
另一种解决方案是,使用默认端口 (80) 并使用 iptables 将所有请求从端口 80 重定向到端口 8080:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Centos7 最小化安装可能开启了 SELinux,因此您必须在提升的 shell 中执行以下命令:
setsebool httpd_can_network_connect true -P