我知道如何在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),这样它仍然可以进入我的实时制作网站。
据我所知,这可能无法仅使用hosts文件(我尝试将端口添加到8080到我的域名 - 似乎不起作用;-))...
我对这个主题真的不太了解,所以欢迎任何想法,见解,链接,阅读材料和工具。
编辑: Arnout的回复回答了我上面提到的问题,但没有解决我的实际问题。重新路由example.com:8080到localhost:80确实有效,如果我访问example.com,它会加载我本地版本的首页,但该页面上的所有链接当然都不知道端口号,因此指向生产版...我的问题的实际解决方案似乎是咬酸苹果和修复我的应用程序(遵循Rob的建议)并删除所有硬编码的URL,以便它适用于任何域。 ..
答案 0 :(得分:4)
Internet Junkbuster(代理服务器)可以使用其forwarding功能执行此操作。
只需添加一行
即可example.com:8080 localhost:80 . .
到sforward.ini
,取消注释forwardfile
中的junkbstr.ini
行。现在将浏览器配置为使用在localhost的端口8000上运行的代理服务器,然后进行设置。
我确信其他代理服务器也有类似的功能 - 我只是喜欢Junkbuster,因为它是一个简单的独立可执行文件。
答案 1 :(得分:2)
您正在域名服务(DNS)领域玩游戏。从技术上讲,使用高级DNS配置(可能包括重新映射端口),您可以提出建议,并且通常在Internet上完成。但是,你不太可能想在当地花费那么多麻烦和费用。
另一方面,我怀疑你的真正问题可以更容易解决。为什么要将“example.com”解析为本地Web服务器?您已经可以将本地Web服务器称为“localhost”,“127.0.0.1”,并通过其分配的计算机名称“workstation-x”。
我能想到并且我已经看到,想要引用与生产Web服务器具有相同主机名的本地Web服务器的唯一原因是由于将服务器主机名硬编码到您的链接中您的应用程序的网页。如果是这种情况,答案很简单:不要!您应该始终实现Web应用程序,以便它们引用相对于已部署服务器的所有内容(其他页面,CSS,JS,图像等)。如果跨多个服务器进行部署,则基于可配置的服务器主机名,您的引用必须是绝对的。这很容易做到,没有理由不去做。
如果情况并非如此,那么请解释一下您想要实现的目标以及您尝试的动力。
编辑:既然你已经确认我的猜测是问题是网页中生产主机名的硬编码引用,那么让我简单地补充一点,我总是在没有异常的情况下发现修复真实的更便宜问题而不是累积变通办法(例如您尝试重新映射端口)。我从未遇到过反对过的作者。
修复页面应该比全局搜索更难。替换,特别是与一个体面的文本编辑器。即使编写一个简单的脚本来更改源文件也会比尝试解决方法更便宜,更容易。
无论如何,祝福你,让我们知道结果如何。
答案 2 :(得分:0)
您能否确认8080端口是否正在侦听网络服务器?使用命令“netstat -na”查看端口8080是否正在侦听。
您是否在apache配置文件中添加8080端口与默认的80端口相同?
在apache配置文件中添加端口8080以使其侦听并仔细检查8080端口是否正在侦听Web服务器,然后您将能够使用端口8080访问该页面。如http://mytestwebserver:8080/index.html或类似此类....