1

我在我的 localhost 机器上并行运行 IIS 和 Apache HTTP Server,而 Apache 正在侦听不同的端口(端口 81)。IIS 正在侦听端口 80。但是,如果我输入该端口号,我只能访问我的 Apache 虚拟域。例如:

http://virtual.myvirtualdomain.com:81 http://virtual.myvirtualdomain2.com:81

我怎样才能让 Apache 自动知道它是端口 81,并且不强迫我输入端口号?

编辑:

答案似乎是我需要将 IIS 重定向到 Apache。谁能提供有关如何使用 IIS 5.1 完成的说明?

4

8 回答 8

7

这不是告诉 Apache 的问题,而是浏览器知道要连接什么的问题。您要么必须将 IIS 重定向到 Apache,要么放弃。

于 2009-01-26T15:26:11.360 回答
3

您必须输入端口号,以便您的客户端知道连接到哪里。这与服务器无关。

在 Unix 系统上,您可以修改您/etc/services的列表 81 作为 http 的端口。但这将有效地禁用对位于端口 80 上的所有网站的访问。

或者,您可以在端口 80 上配置 IIS,以在本地代理 apache 上站点的请求。然后所有客户端都会向 IIS 请求一个页面,该页面将与端口 81 建立本地连接。

于 2009-01-26T15:26:16.820 回答
2

我做了更多研究,结果发现您不能将 IIS 5.1 重定向到 Apache,因为这需要多个网站(设置为重定向到端口 81 上 Apache 上的虚拟主机)。这是因为 Windows XP Pro 上的 IIS 5.1 不能处理多个网站(同时运行而无需脚本破解)。那好吧。

于 2009-01-26T15:53:02.990 回答
2

你换一下怎么样?让 Apache 在端口 80 上侦听,IIS 在端口 81 上侦听您需要的任何内容并让 Apache 重定向?Apache 不应该被限制在与 IIS 5.1 相同的每台机器上。

于 2009-01-26T16:10:41.800 回答
1

你不能。81 告诉您的浏览器在哪里寻找 Apache。

于 2009-01-26T15:26:23.760 回答
1

你不能。

指定端口是您的 Web客户端的工作,在您指定该端口之前,它甚至不会到达 Apache。

您可能会做的是让 IIS 也侦听相同的 HTTP/1.1 虚拟主机,然后安排它发出302 Moved重定向以将您的浏览器发送到正确的端口号。

或者,在您的计算机上运行第二个 IP 地址,并将 IIS 绑定到原始 IP 地址,将 Apache 绑定到第二个。这样,您根本不需要使用不同的端口。

于 2009-01-26T15:26:53.150 回答
1

没有办法完全按照你的要求去做。唯一的方法是配置 IIS——对于由 IIS 提供服务的虚拟域——在端口 81 上转发到 Apache。使用这种配置,客户端不会知道他们的请求在去往的途中通过 IIS阿帕奇。效率低一点,但它可以解决您的需求。

于 2009-01-26T15:27:15.477 回答
1

输入 url 时,浏览器必须使用某个端口连接到站点。80 是服务器检查的默认端口。如果您需要通过浏览器连接到任何其他端口,则需要在 url 中包含端口号。强迫您输入 81 的不是 apache,而是您的浏览器,因为当未指定端口号时,它被设置为使用 80 作为端口。

如果您将 apache 的端口更改为 80 并将 IIS 端口更改为 81,那么您可以在没有端口号的情况下连接到 apache,但在使用 IIS 网络服务器时您需要使用端口号。

不确定使用 apache 重定向到 IIS 背后的其他想法是什么。在我看来,如果您在 apache 的 httpd.conf 中为 IIS 目录创建一个条目,那么您将使用 apache 连接到该目录,而不是 IIS。您可以设置一个域并让它通过端口 81 连接到 apache。这是隐藏端口号的一种方法(可能不是真的。我从未在 80 以外的端口上尝试过 apache)。

于 2009-01-26T17:18:36.890 回答