tomcat没有在usntu 16.04LTS

时间:2017-04-23 19:03:39

标签: java amazon-web-services ubuntu tomcat amazon-ec2

我按照以下步骤运行我的网络应用程序

  1. 我在aws上创建了一个ubuntu 16.04 LTS的ec2实例。
  2. 使用ssh远程登录,我安装了java 8,然后 tomcat:sudo apt-get install tomcat7。 (tomcat9无法使用相同的命令安装)
  3. 我将war文件重命名为ROOT(因为项目名称不应该在URL中)并将其复制到webapps文件夹。
  4. 启动tomcat后,使用http://IP_address:8080我可以访问我的网站。 server.xml中的默认设置:connector port =“8080”... 我检查了哪些服务正在运行 netstat -plnt 8005(服务器关闭端口),8080(连接器端口)
  5. 我将server.xml的端口号更改为80:connector port =“80”.. 然后开始tomcat。 我无法访问我的网站。 以下命令也不显示在端口80上运行的任何服务 netstat -plnt 8005(服务器关闭端口)
  6. 需要进行哪些更改才能在不输入URL中的任何端口号的情况下访问网站。 (我已经将域名映射到IP地址。) 我想使用java 8功能因此我更喜欢tomcat 9的安装。

2 个答案:

答案 0 :(得分:6)

一个简单的解决方案(在ubuntu上运行的EC2上测试)。基本上将所有流量从端口80重定向到8080

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

人们还建议安装iptables-persistent (通过apt-get install)来保存更改,但我个人还没有测试过。

确保您的AWS控制台中允许端口80 。要做到这一点,请在网络&安全性转到安全组,选择您的EC2实例组,选择它并转到入站(位于底部),然后进行修改,然后使用端口80添加规则。你可能要等一段时间。

答案 1 :(得分:-2)

是的,这很有效。

如果您有像abc.techuva.com这样的域名并将其映射到您的网址:8080等并使其正常工作,则另一方面是创建一个子域名。