有效修改Tomcat6默认端口(ubuntu server,centos)
Ubuntu Server 12.04 安装tomcat6和mysql
$ sudo apt-get install sysv-rc-conf tomcat6 mysql-server
$ sudo ufw allow 80/tcp
$ sudo sysv-rc-conf tomcat6 on
修改tomcat端口,我们似乎都知道在这里把8080改成80:
$ sudo vi /etc/tomcat6/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
网上很多文章写到这里就完事了,但其实改完后tomcat根本不工作,TCP监听端口里没有80,而恢复到8080就好用。原来,从ubuntu10.04起,默认是关闭1024以下端口的,还需要修改以下文件:
$ sudo vi /etc/default/tomcat6
# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind. It is used for binding Tomcat to lower port numbers.
# NOTE: authbind works only with IPv4. Do not enable it when using IPv6.
# (yes/no, default: no)
AUTHBIND=no
改成AUTHBIND=yes
$ sudo service tomcat6 restart
$ ss -ln
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 127.0.0.1:3306 *:*
LISTEN 0 100 *:80 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 1 127.0.0.1:8005 *:*
$
现在好了。
参考 http://alanjiang.iteye.com/blog/737563
对于Centos6,是另一种情况,系统不允许tomcat用户使用1024以下的端口。所以除了修改 /etc/tomcat6/server.xml,还有这个文件:
# vi /etc/tomcat6/tomcat6.conf
# What user should run tomcat
TOMCAT_USER="tomcat"
# Connector port is 8080 for this tomcat6 instance
CONNECTOR_PORT="8080"
将上面两行改为
TOMCAT_USER="root"
CONNECTOR_PORT="80"
就可以了。但是这样做的安全性怎么样还不清楚,我觉得比较理想的是 Tomcat与Apache HTTPD的集成,感兴趣就搜一下吧。
参考
http://xuejiayue.iteye.com/blog/88370
http://www.cnblogs.com/gnorts/archive/2010/11/24/1886771.html