2017-08-05 55 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