【问题标题】:Redirect to different ports based on request URL根据请求 URL 重定向到不同的端口
【发布时间】:2014-04-01 09:19:41
【问题描述】:

我正在使用 Windows Server 2003。我有一个在 IIS 上运行的 Web 应用程序和另一个在 Apache Tomcat 上运行的 Web 应用程序。目前所有请求都转到端口80。据我了解,Tomcat 和 IIS 不能同时使用同一个端口。因此,我需要一种重定向用户的方法。如果用户访问 www.example.com,那么我需要他们使用 http://localhost:80,但如果他们访问 www.otherExample.com,那么我需要他们使用 @ 987654323@

这通常是如何完成的?

【问题讨论】:

  • 这是测试/开发环境还是生产环境?
  • 为什么要使用两种不同类型的服务器?

标签: windows tomcat iis redirect dns


【解决方案1】:

好吧,你应该这样做:

首先,我假设您知道如何将 example.comotherexample.com 映射到 127.0.0.1 并且真的是你想要的。因此,我将跳过该部分并直接进行配置。

首先,当用户输入 http://www.domain.com 时,它与输入 http://www.domain.com:80 完全相同。此外,当用户键入 https://www.domain.com 时,它与键入 https://www.domain.com:443 完全相同。也就是说,如果省略 https 和 https 的端口,则分别假定为 80 和 443。

所以,这只会让您得出一个结论。您必须将一台 Web 服务器(IIS 或 Tomcat)设置为 80 端口,另一台设置为 8084 端口。您决定哪个是哪个,因为对于配置而言,这无关紧要。

现在,要完成您需要的操作,您需要在侦听端口 80 的服务器上创建一个重定向脚本。因此,如果您使用 PHP 进行重定向脚本,您可以使用如下内容:

<?php

  if ($_SERVER['HTTP_HOST']=='www.otherexample.com') {
    Header('Location: http://localhost:8084/otherExample');
  }

?>

此外,您可以使用服务器本身的配置文件(侦听端口 80 的配置文件)完成类似的操作。

这只是对您需要采取的步骤的一般说明。显然,您需要调整它们以适应您的情况。

让我知道你的想法。

【讨论】:

  • 如果您的 IIS 设置为在端口 80 上运行,并且您可以在 IIS 上运行 php,然后将我的代码作为 index.php 放在您的根目录中,看看会发生什么(假设域是example.com 或 otherexample.com)。
  • 您的域名真的是 www.example.com 和 www.otherexample.com 吗?
  • 好吧,对于 Windows,您可以在 C:\windows\system32\drivers\etc\hosts 文件中添加 127.0.0.1 example.com127.0.0.1 otherexample.com,然后在控制台中运行 ipconfig /flushdns。对于 linux,同样可以添加到/etc/hosts。然后,当您 ping example.com 或 ping otherexample.com 时,您应该会收到来自 127.0.0.1 的回复,该地址基本上是 localhost。
【解决方案2】:
  1. 将 IIS 设置为端口 80。
  2. 在 IIS 上为您的两个域创建两个虚拟主机。
  3. 将第一个文档的根目录设置为 IIS 上的目录。
  4. 从 Tomcat 中移除 coyote http/1 连接器。
  5. 看看here,如何从 IIS 重定向到 Tomcat。
  6. 按照教程将第二个虚拟主机映射到Tomcat。

然后您可以访问 example.com 和 otherExample.com 而无需更改端口或目录。

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2014-01-25
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多