根据请求URL重定向到不同的端口

时间:2014-02-28 11:34:09

标签: windows tomcat iis redirect dns

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

这通常如何完成?

2 个答案:

答案 0 :(得分:1)

  1. 将IIS设置为端口80。
  2. 在IIS上为您的两个域创建两个虚拟主机。
  3. 将第一个文档根目录设置为IIS上的目录。
  4. 从Tomcat中删除coyote http / 1连接器。
  5. 查看here,如何从IIS重定向到Tomcat。
  6. 根据教程将第二个虚拟主机映射到Tomcat。
  7. 然后,您可以访问example.com和otherExample.com,而无需更改端口或目录。

答案 1 :(得分:0)

嗯,你应该选择这样的东西:

首先,我假设您知道如何将 example.com otherexample.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的配置文件)来完成类似的操作。

这只是您需要采取的步骤的一般说明。显然,您需要根据自己的情况调整它们。

让我知道你的想法。