类型:LinuxApp,创建时间:Dec. 30, 2011, 7:25 p.m.
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/15/。
今天安装了一个tomcat服务器,不想让服务器直接以root用户运行,就配置了一个低权限的用户给它。但是,众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。
怎么办呢?有两种方案:
1、使用setuid或者sudo提升程序的权限。这个不好,跟直接用root一样的缺点。
2、把到80端口的服务请求都转到8080端口上。这个又分为两种方法。常见的方法是使用apache监听80端口,然后利用ajp转向把服务转到8080。这个办法有很多好处。比如对于一些静态或者php的url就可以直接由apache提供服务,而只把jsp的请求转到tomcat。这里不再详述。我使用的是第二种方法,利用iptables
把80端口映射到8080。很简单,在root
权限下运行一条命令:
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080
现在就可以看到效果了。不过据说不能拿本机做试验,因为本机的PREROUTING不起效果。你可以拿别人的机器试一下。
大多数Linux发行版本有关于iptables的配置文件,比如基于Redhat的发行版一般有一个/etc/sysconfig/iptables
这个文件。使用这条命令把当前的iptables
配置写到这个文件里:
iptables-save > /etc/sysconfig/iptables
重新启动机器之后端口映射就仍然有效
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/15/。
暂时还没有任何评论。