【问题标题】:Forwarding only on a single port 8080 to localhost (windows) possible? [closed]仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]
【发布时间】:2010-09-24 20:42:08
【问题描述】:

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

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

现在我想知道是否有办法仅将 example.com 转发到某个端口(例如仅 example.com:8080)到本地网络服务器,然后离开 example.com(在默认端口 80),以便它仍然可以访问我的现场制作网站。

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

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

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

【问题讨论】:

    标签: windows portforwarding hosts


    【解决方案1】:

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

    你是否在apache配置文件中添加了8080端口和默认的80端口一样?

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

    【讨论】:

      【解决方案2】:

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

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

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

      如果不是这样,请说明您想要达到的目标以及您尝试的动机。

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

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

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

      【讨论】:

      • 我认为这与 DNS 无关。 DNS 不关心端口,只关心主机名和 IP 地址。
      • 嗯,是的,不幸的是它是硬编码的,我对此无能为力。我知道您描述它的方式是应该如何完成,但有时,尤其是在使用旧代码时,您可能别无选择;并且简单地使用不同的端口似乎比软件重写“便宜”......
      【解决方案3】:

      Internet Junkbuster(代理服务器)可以使用其forwarding 功能来完成此操作。

      只需添加一行

      example.com:8080   localhost:80   .   .
      

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

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

      【讨论】:

      • 这有效并回答了我最初的问题... ;-)
      猜你喜欢
      • 2014-02-12
      • 2017-03-14
      • 2012-06-05
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      相关资源
      最近更新 更多