这种情况通常发生在以非root权限用户启动的情况下。
原因:
在基于Unix的系统上,绑定小于1024的端口需要root权限。
解决方法:
1.以root权限启动
我想大概没人愿意在产品化部署时root权限运行JSP,当然如果你是在本地开发测试没有任何问题。
2.做端口转发
这种情况通常时你使用Eclipse等IDE内部的WTP运行时使用,因为你没法指定root权限运行(个人看法,未深入研究),所以做个端口转发,简单快速使用,不用时删掉就OK。
伦理电影|基于BSD系统(比如Mac OS)使用 ipfw:
1
|
sudo
ipfw add fwd 127.0.0.1,8080 tcp from any to 127.0.0.1 80
in
|
在不使用得时候,可以删除转发
1
2
3
|
$
sudo
ipfw list
#查看规则列表
00100 fwd 127.0.0.1,8080 tcp from any to 127.0.0.1 80
in
$
sudo
ipfw 00100
#删除rule id 为00100的规则。注意:根据你的是情况替换rule id
|
Linux系统使用 iptables:
1
2
|
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
|
3.通过前端服务器反向代理(通常用于产品化部署)
使用Nginx,Apache等Web服务器运行于80端口,然后代理到Tomcat运行端口8080
关于Nginx反向代理的配置,可以参见我之前关于Nginx的文章。