2017-08-05 43 views
1

这个问题是唯一到Tomcat 8.5其他的答案是7和描述如何在80端口Tomcat的运行8.5 /删除8080 tomcat的16年5月8日,CentOS的7minimal安装,托管24

首先我不工作我一直在研究tomcat文档,现在在线问题已经有20个小时了。我从头构建了我的服务器大约十次以了解该过程,并尝试获得一份清楚的指南,以便让服务器启动并运行以运行多个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状态tomcat.service =运行

防火墙CMD --list-所有 公共(有源) 目标:默认 ICMP块反转:无 接口:venet0 来源: 服务:DHCPv6的客户端的ssh 端口:8001/TCP 80/TCP 20/TCP 个协议: 伪装:没有 向前端口: sourceports: ICMP块: 丰富的规则:在公共区域

开放口岸。

的方法,我想此刻是改变在tomcat/conf目录/ server.xml中的端口

这里是我已经改变了它:

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

NMAP和在线工具说端口已关闭,但我相信这是因为没有任何使用端口。正如我读过的那样,并不确定。

在iptables中也没有规则,所以没有其他端口块就位。

该网页显示的显示“此网站无法达到”

任何帮助,因为我已经花20小时良好学习服务器的设置是极大的赞赏和我仍然感到困惑,如何真正检查原因这不起作用,但为什么它在端口8080上工作。

我想通过tomcat运行多个webapps。我正在计划将主机详细信息添加到server.xml的底部,我已经在端口8080上成功完成了,但不是在80端口上的结果与上述相同。

这是一个类似的问题,但以前的答案不工作我已经尝试过所有。

+0

我强烈建议不要在端口80上运行tomcat,而应使用反向代理(如Apache或Nginx)。反向代理对于此类部署非常常见https://www.nginx.com/resources/admin-guide/reverse-proxy/ – spuder

+0

[Tomcat Webapp在端口80上]的可能重复(https://stackoverflow.com/问题/ 16326707/tomcat-webapp-on-port-80) – spuder

+0

这不是重复的,因为其他选项没有工作。为什么我不需要运行Apache?我读过有办法做到这一点,只是运行tomcat?这就是我想要做的事情,我希望节省资源,以最小的负载运行大型企业应用程序,同时保持安全。我不打算从nginx开始,因为研究的httpd是更好的性能。请详细说明并且只提供一个可以解决问题的答案,因为我已经尝试了20多篇教程,但没有成功。 – danbdex

回答

1

您必须在Linux上启用AUTHBIND才能让tomcat使用像80这样的特权端口,因此请在/etc/default/tomcat8文件中设置AUTHBIND=yes

另一种解决办法是,使用默认端口(80),并以这种方式从80端口的所有请求重定向到8080端口使用iptables:

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 
+0

/etc/default /中没有tomcat8文件?我有nss和useradd文件 – danbdex

+0

看看这个指南:https://blog.webhosting.net/how-to-get-tomcat-running-on-centos-7-2-using-privileged-ports-1024/ – aleroot

+0

谢谢,看起来很有前途,因为这是我还没试过的东西但是现在需要去工作,所以我会尽快回复。我会让你知道它是如何:) – danbdex

0

Centos7最小安装可能有SELinux的接通,所以你将需要在高架外壳中执行以下命令:

setsebool httpd_can_network_connect true -P