首先,我只想看看不是ec2控制台的安全组设置。因为我可以设置apache,这是错误的80端口,并能够通过80端口访问apache网站。但对于tomcat,如果我使用端口8080(默认情况下)或一些大于1023的值(我认为是这个端口),它就可以工作。但当我更改server.xml(将8080更改为80)时,如果我使用80端口,它将无法工作,我成功启动了服务,但没有80/http侦听。我知道这应该是一些权限问题(只有root才能启动低于1023端口的服务)。但是我不知道该怎么做。
发布于 2012-09-18 09:52:04
我个人对这个问题的选择是使用iptables
将所有流量从端口80重定向到运行Tomcat的较高端口(例如8080)。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
发布于 2012-09-18 11:48:07
我以前这样做的方式是使用Apache2作为代理,使用虚拟主机,并在Tomcat上使用代理。这将处理请求,然后还可以用作负载均衡器,如果将来您决定使用多个Tomcat进行负载平衡。
发布于 2012-09-17 20:32:50
将Tomcat配置为在Linux的特权端口上运行的一种常见方法是使用authbind。
下面是在Ubuntu 16.04上安装Tomcat7的步骤。
首先,确保安装了authbind:
sudo apt-get install authbind
编辑/etc/default/tomcat7
并取消对该行的注释:
AUTHBIND=yes
为端口80创建绑定权限文件:
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80
如果您还在使用https,请对端口443执行上述相同的操作。
https://stackoverflow.com/questions/12464926
复制