此文章只说明如何打开80端口具体原理方面这里不做过多探讨。
在ubuntu10以后的版本 ubuntu 禁用了普通用户使用1-1024端口。这样当我们直接更改tomcat的server.xml 中的端口是不能正常启用80端口的。在catalina.out 里我们会发现以下错误信息。
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-80]]
最简单的理解就是tomcat没有正常的打开80端口。
我们可以通过以下方法打开
一、首先我们要通过 AUTHBIND 给普通用户使用80端口的一个权限。
命令如下
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat7 /etc/authbind/byport/80
(我这里运行tomcat的用户是tomcat7如果是其它用户请自行更改)
这样就给tomcat7这个普通用户使用80端口的权限。
二、然后我们再修改tomcat的相关配置文件
1、修改/etc/tomcat7/server.xml中的端口
将原来的 Connector port="8080" protocol="HTTP/1.1" 这里的端口改为80
Connector port="80" protocol="HTTP/1.1"
2、修改/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做反向代理的方式。