5

我知道如何在 windows 上使用 xampp 设置本地网络服务器...我在主机文件 (c:\windows\system32\drivers\etc\hosts) 上输入我的别名和目标,然后在我的 apache vhosts 上添加相应的条目配置文件。这样,假设我的网络服务器正在监听端口 80,我可以例如映射example.com到我的本地网络服务器。

我总是在我的主机文件中输入整个域名(例如 example.com),并且对该名称的任何请求都将被定向到 localhost。

现在我想知道是否有一种方法可以仅将某个端口(例如仅 example.com:8080)上的 example.com 转发到本地网络服务器,而将 example.com(默认端口 80)单独保留,以便它仍然会去我的现场制作网站。

据我了解,仅使用主机文件可能无法做到这一点(我尝试将端口 :8080 添加到我的域名中-似乎不起作用;-))...

我对这个主题真的不太了解,所以欢迎任何想法、见解、链接、阅读材料、工具。

编辑:Arnout 的回复回答了我上面提出的问题,但没有解决我的实际问题。将 example.com:8080 重新路由到 localhost:80 确实有效,如果我访问 example.com,它会加载我本地版本的首页,但该页面上的所有链接当然不知道端口号,因此指向生产版本......我的问题的实际解决方案似乎是咬住酸苹果并修复我的应用程序(按照 Rob 的建议)并删除所有硬编码的 url,以便它适用于任何域......

4

3 回答 3

4

Internet Junkbuster(代理服务器)可以使用其转发功能来做到这一点。

只需添加一行

example.com:8080   localhost:80   .   .

sforward.ini,并取消注释 中的forwardfilejunkbstr.ini。现在将您的浏览器配置为使用在 localhost 的 8000 端口上运行的代理服务器,然后您就设置好了。

我确信其他代理服务器也有类似的功能——我只是喜欢 Junkbuster,因为它是一个简单的独立可执行文件。

于 2008-12-02T10:21:43.870 回答
2

您正在玩域名服务 (DNS) 领域。从技术上讲,使用高级 DNS 配置(可以包括重新映射端口),您的建议是可能的,并且在 Internet 上常规完成。但是,您不太可能想在当地花费那么多的麻烦和费用。

另一方面,我怀疑您的真正问题可以更容易地解决。为什么要将“example.com”解析到本地 Web 服务器?您已经可以将本地 Web 服务器引用为“localhost”、“127.0.0.1”,并通过其分配的机器名称“workstation-x”。

我能想到并且我已经看到,想要引用与生产 Web 服务器具有相同主机名的本地 Web 服务器的唯一原因是由于将服务器主机名硬编码到应用程序 Web 中的链接中页。如果是这种情况,答案很简单:不要!您应该始终实现您的 Web 应用程序,以便它们引用与已部署服务器相关的所有内容(其他页面、CSS、JS、图像等)。如果您跨多个服务器部署,那么您的引用必须是基于可配置服务器主机名的绝对引用。这很容易做到,没有理由不去做。

如果不是这种情况,那么请解释您想要实现的目标以及您尝试的动机。

编辑:既然您已经确认我的猜测是问题是网页中对生产主机名的硬编码引用,让我简单地补充一下,我总是无一例外地发现解决真正的问题比解决实际问题更便宜积累解决方法(例如您尝试重新映射端口)。我从未遇到过持相反观点的作者。

修复页面应该比全局搜索和替换更难,尤其是使用一个体面的文本编辑器。即使编写一个简单的脚本来更改源文件也比您尝试解决方法要便宜得多,也容易得多。

无论如何,向您致以最良好的祝愿,让我们知道结果如何。

于 2008-12-02T00:42:21.277 回答
0

您能否确认 8080 端口是否正在侦听网络服务器?使用命令“netstat -na”查看8080端口是否在监听。

您是否在 apache 配置文件中添加了与默认 80 端口相同的 8080 端口?

一旦您在 apache 配置文件中添加端口 8080 以使其侦听并仔细检查 8080 端口是否正在侦听网络服务器,那么您将能够使用端口 8080 访问页面。例如http://mytestwebserver:8080/index.html或像这样的东西......

于 2009-09-16T09:24:57.080 回答