通过域名访问tomcat个应用

access tomcat application via the domain name

我在 aws 上有一个虚拟云服务器,其中 tomcat 7 运行 在端口 8080 上,例如。 a.x.y.z:8080(其中 a.x.y.z 是 public ip)。我在上下文路径 "hello" 上的 tomcat 上部署了一个应用程序,这样我就可以像 a.x.y.z:8080/hello 一样访问它。 现在我已经购买了一个域名 example.com 并将其转换为 public ip a.x.y.z 这样我就可以通过 url example.com 访问我的应用程序了: 8080/hello 但实际上我想要的是点击 example.com 我将能够访问我的应用程序。如何实现?

您可以使用 mod_proxy 模块使用您的域名访问您的 tomcat 应用程序,请登录您的服务器并使用以下代码更新您的 httpd 配置。

ProxyPreserveHost On
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/

注意:在上面的代码中更新正确的服务器 IP 而不是 0.0.0.0。

好的,我解决了这个问题:

安装apache2后,在/etc/apache2/apache2.conf文件中 我附加了:

<VirtualHost *:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.example.com
  ServerAlias example.com
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/
</VirtualHost>

保存文件并重新启动 apache2 服务器。 有了这个,每当我点击 example.com,我就会得到 tomcat (localhost:8080) 的主页。然后我打开 tomcat 管理器(示例。com/manager/html)并停止并取消部署根 (/) 路径下的应用程序。 (因此,无论何时点击 example.com,您将不再看到 tomcat 主页,而是一个空白页面)

现在我在 tomcat 中将我的应用程序部署为 root。如果您使用的是 Maven,则可以像 here 那样使用。 因此,我的应用程序在 example.com 中可用。 (如果您不以 root 身份部署应用程序,则必须使用示例访问它。com/myapp)

现在,只要我点击 example.com myapp 就会被访问。