此文章只说明如何打开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作反向代理的方式。