使用不同Web服务运行tomcat的AWS实例无法通过IP和端口访问

问题描述:

我正在使用同一实例中的多个Web服务,并且想知道如何解决一些问题:我正在使用运行的AWS实例Tomcat 8. Tomcat管理3种不同的.war Web服务,每个服务都运行在不同的端口上,并指向不同的URL(app1.mydomain.com,app2.mydomain.com和app3.mydomain.com)。现在所有的Web服务都运行时没有问题,我可以对它们执行一些REST操作(比如POST或GET),但前提是REST指令通过url(app1.mydomain.com/serviceapp1或app2)发送。 mydomain.com/serviceapp2)。另一方面,如果我尝试使用IP地址和端口(xx.xx.xx.xx:Port1/serviceapp1或xx.xx.xx.xx:Port2/serviceapp2)访问服务,则会收到错误消息,如“页面无法找到“。由于它是一个AWS实例,因此/ etc/hosts文件包含上面显示的每个指向亚马逊本地网络(192.168.x.xx,通过ifconfig获取)的机器的url的url,而不是公有IP (38.xx.xx.xx)。使用不同Web服务运行tomcat的AWS实例无法通过IP和端口访问

您能否让我知道我可以通过这些设置来做些什么来通过IP地址访问webapps而不是通过url?

因为我使用的是子域(app1.mydomain.com)而不是典型的www.mydomain.com url,所以我可以如何正确设置server.xml文件中的别名?

由于server.xml文件为每个webapps都包含一个服务并且拥有自己的端口,我应该通过IP地址和端口而不是url来检查哪个参数设置?

在此先感谢您的帮助

+0

是否要通过私有IP或通过公共或弹性IP访问?您是从AWS VPC中的其他资源还是从VPC外部访问此资源? –

+0

嗨马克, 感谢您的回答。 Int他的情况下,我试图通过公共IP访问VPC以外的资源 –

+0

为什么你想通过IP访问而不是域名?除非您已将弹性IP分配给每个实例,否则IP可能会更改。域名是首选的方法。 –

  1. 要关联的IP地址,网址,请使用Route53。您可以创建A记录并直接将其与您的IP地址相关联,或使用别名。

  2. 要关联子域,一种方法是使用Route53别名。另一种方式是使用CloudFront等转发代理;将您的云端域名与您的子域名网址相关联,然后在您的域名中创建一个将云端CDN指向您的网址的CNAME。

  3. 您还可以阅读有关ELB基于路径的路由。在某些情况下,这可能很适合您的设计。

+0

嗨山姆, 感谢您的回答。由于Route53是一个额外的工具,首先我想知道如何解决它没有额外的工具,因为实施的虚拟主机不是太复杂。无论如何,我会尝试你的解决方案,并让你知道结果 –

+0

问题是关于使用IP地址**而不是**域名。 Route53仅用于设置域名。没有理由你需要Route53来做这件事。这个答案并没有解决被问到的问题。 –