代码之家  ›  专栏  ›  技术社区  ›  Ben

是否可以仅在单个端口8080上转发到localhost(windows)?[关闭]

  •  5
  • Ben  · 技术社区  · 17 年前

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

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

    现在我想知道是否有办法 仅转发某个端口上的example.com (例如,只有example.com:8080)连接到本地Web服务器,并保留example.com(在默认端口80上),这样它仍然会连接到我的实时制作网站。

    据我所知,仅使用hosts文件可能无法实现这一点(我尝试将端口:8080添加到我的域名中-似乎不起作用;-)。..

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

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

    3 回复  |  直到 17 年前
        1
  •  4
  •   Arnout    17 年前

    Internet Junkbuster(代理服务器)可以使用其 forwarding 功能。

    只需添加一行,如下所示

    example.com:8080   localhost:80   .   .
    

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

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

        2
  •  2
  •   Rob Williams    17 年前

    您正在域名服务(DNS)领域进行游戏。从技术上讲,使用高级DNS配置(可能包括重新映射端口),您提出的建议是可能的,并且是在互联网上常规完成的。然而,你不太可能想在当地花那么多麻烦和费用。

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

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

    如果不是这样,那么请解释你想要实现什么,以及是什么促使你尝试。

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

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

    无论如何,祝你一切顺利,并让我们知道结果如何。

        3
  •  0
  •   Arvindh Arvindh    16 年前

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

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

    一旦你在apache配置文件上添加了8080端口使其监听,并仔细检查8080端口是否在Web服务器上监听,那么你就可以使用8080端口访问页面。喜欢 http://mytestwebserver:8080/index.html 或者类似的东西。...