如何强制 IP 地址和主机名仅在 Tomcat 服务器上公开为 example.com?

如何强制 IP 地址和主机名仅在 Tomcat 服务器上公开为 example.com?

我有一个在 Tomcat7 之上的 CentOS 6 上运行的 Web 服务器。一切工作正常,但是,用户可以通过多种方式访问​​服务器。

例如:

  • IP地址
  • example.com
  • www.example.com

这些地址都可以通过浏览器访问。不过,我想配置服务器,以便当www.example.com访问 IP 地址 或 时,它将指向“example.com”。


IP 地址 示例 ,xxx.xx.xx.xx ► example.com
www.example.com ► example.com

实现这一目标的最简单方法是什么?服务器上需要配置 DNS 吗?

答案1

你真的无能为力阻止这种情况。最好的选择是在 Tomcat 中放置一组重写规则,以便在访问各种 URL 或 IP 地址时,它们相应地重定向或重写访问 URL,使其成为 domain.com。

前端网络服务器

人们常常会部署 Tomcat 或 Jetty 服务器,并在前面放置一个 Web 服务器来帮助实现这一点。在我工作的地方,我们使用 Nginx 来完成此任务。您实质上是将 Tomcat 服务器代理为它背后的从属服务器。以这种方式部署可以让 Tomcat 服务器受到“保护”,以便只能以您想要的方式访问它,因为最终用户只能访问其前面的 Web 服务器上公开的 URL。

您可以在此处阅读有关此部署模型的更多信息:

Nginx 只是一种 Web 浏览器,您可以轻松地使用 Apache 或其他东西来提供前端层。

仅使用 Tomcat 重写

另一种方法是使用像这样的模块,网址重写过滤器,它可以在 Tomcat 内部执行 URL 重写。这种方法类似于使用Apache 的 mod_rewrite清理和重定向传入 URL 的模块。

有一个关于如何为 UrlRewriteFilter 创建规则的不错的教程,标题为:塔基 URLRewrite 操作方法

相关内容