我有一个在 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 操作方法。