此文章只說明如何打開80端口具體原理方面這裏不作過多探討。nginx
在ubuntu10之後的版本 ubuntu 禁用了普通用戶使用1-1024端口。這樣當咱們直接更改tomcat的server.xml 中的端口是不能正常啓用80端口的。在catalina.out 裏咱們會發現如下錯誤信息。apache
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]ubuntu
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-80]]tomcat
最簡單的理解就是tomcat沒有正常的打開80端口。ide
咱們能夠經過如下方法打開測試
1、首先咱們要經過 AUTHBIND 給普通用戶使用80端口的一個權限。spa
命令以下代理
touch /etc/authbind/byport/80server
chmod 500 /etc/authbind/byport/80 xml
chown tomcat7 /etc/authbind/byport/80
(我這裏運行tomcat的用戶是tomcat7若是是其它用戶請自行更改)
這樣就給tomcat7這個普通用戶使用80端口的權限。
2、而後咱們再修改tomcat的相關配置文件
一、修改/etc/tomcat7/server.xml中的端口
將原來的 Connector port="8080" protocol="HTTP/1.1" 這裏的端口改成80
Connector port="80" protocol="HTTP/1.1"
二、修改/etc/default/tomcat7 文件中的AUTHBIND選項。
通常狀況下這個選項是註釋掉的並且它在最後一行。
將#AUTHBIND=no 改成 AUTHBIND=yes
若是不出之外就能夠正常使用80端口了。
注:出現這種狀況首先是咱們經過apt 這種方式安裝tomcat時會出現沒法使用80端口的狀況。
若是是直接解壓的tomcat二進制包而且用root用戶啓動服務則不會出現80端口沒法打開的狀況(這種狀況以經測試過能夠正常使用80)。
要是以爲以上面方法比較麻煩,也能夠將/etc/default/tomcat7配置文件中的用戶和組改成root也能夠正常打開80端口。畢竟root權限太大不建議使用此方法。
我的並不推薦tomcat直接使用80端口,推薦使用apache或nginx作反向代理的方式。