如何将亚马逊EC2上的默认端口(8080)更改为80端口?

11

我尝试使用 server.xml 文件更改Tomcat的默认端口,将 8080 更改为 80。但当我试图访问我的应用程序时,它无法使用。我做错了什么?Amazon EC2 是否存在一些安全问题?

6个回答

9

有几种方法可以使Tomcat在80端口上监听,但并非所有Linux版本都可用。

有关详细信息和指针,请参阅我在Tomcat on EC2系列文章中的在80端口上运行Tomcat一节。


6

使用sudo su -命令切换到root用户。在/usr/share/tomcat7/conf/tomcat7.conf中将TOMCAT_USER="tomcat"更改为TOMCAT_USER="root"。在/usr/share/tomcat7/conf/server.xml中将8080更改为80 (如果你是一个完美主义者,也可以将8443更改为443)。


2

如果您想在AWS上为tomcat 7.0.33启用此功能,建议按照上述方法修改server.xml。

然后更新/etc/tomcat/tomcat.conf。 sudo vi /etc/tomcat/tomcat.conf
更改 TOMCAT_USER="tomcat" 为 "root"
使用以下命令重启服务器 sudo service tomcat restart


2

你是否以root身份运行Tomcat?只有root用户才能打开80端口。请检查您是否可以本地访问该端口-例如,尝试wget http://localhost/。当然,还要检查您的安全组是否允许访问80端口,但如果8080端口可用,我认为它会允许访问。


当我尝试使用wget http://localhost时,出现以下错误:连接到localhost|127.0.0.1|:80...失败:连接被拒绝。 - Emmanuel Demey
因此,问题就在于服务器本身。请检查您的防火墙设置(iptables -L),以及Tomcat是否在80端口上侦听(netstat -ntpl)。 - okrasz
当我运行iptables -L时,出现以下信息:致命错误:无法加载/lib/modules/2.6.21.7-2.ec2.v1.2.fc8xen/modules.dep文件:没有那个文件或目录 iptables v1.4.5:无法初始化iptables表“filter”:权限被拒绝(您必须是root) 可能需要升级iptables或内核。 - Emmanuel Demey
抱歉,实际上我有这个错误信息:FATAL:无法加载/lib/modules/2.6.21.7-2.ec2.v1.2.fc8xen/modules.dep: 没有那个文件或目录 iptables v1.4.5:无法初始化iptables表“filter”:iptables谁?(您需要insmod吗?) 也许需要升级iptables或内核。 - Emmanuel Demey
而且,netstat是否显示端口80在监听模式下?第一个错误显示您以非root身份运行。您是否以root身份启动Tomcat?至于iptables错误,我不会提供帮助。也许你可以Google一下。这是一个有相同错误的线程:http://www.linuxquestions.org/questions/linux-networking-3/iptables-v1-3-8-cant-initialize-iptables-table-%60filter-577212/ - okrasz
显示剩余2条评论

1

0

我曾经遇到过同样的问题。如果你配置了server.xml并在EC2中打开了80端口,你需要做的第一步是关闭服务器。然后以root身份登录(sudo su -),再次启动服务器,这样应该就可以解决问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接