我有一台 Windows Server,上面有我的开发网站,可以通过http://servername
实际服务器上的 IP 或服务器名称访问,也可以http://servername.org.com
通过通过 VPN 连接到同一网络的家用电脑访问。
我在 IIS 上创建了一个附加站点test1
,它使用与默认端口相同的端口。未分配的 IP 地址和主机名test1.com
。在我的 hosts 文件中,我还添加了:
127.0.0.1 test1.com
在我通过 RDP 连接的实际服务器上,我可以通过 Web 浏览器上的 URL 访问第二个网站,test1.com
并且运行正常,但当我在家用电脑上执行相同操作时,即使我通过 VPN 连接到同一网络,它也无法正常工作。我尝试了不同的 URL 组合,但http://servername.org.com./test1.com
无济于事。
我需要做什么才能实现这一点?另外,只需对此问题进行标记。假设我的默认网站是该网站的第 1 版,而我想创建第 2 版。在我的服务器上管理它的最佳方法是什么?
http://servername.org.com/v1/index.html
对于版本 1 和 v2 也一样,但是目录不同。- 或者在我的 IIS 上每次迭代创建一个新网站,
http://servername-v1.org.com
然后http://servername-v2.org.com
或者这真的不重要?那些不同的版本只是开发版本。我目前采用第一种方式,但想知道是否有一种真正正确的方法可以做到这一点。
答案1
如果我理解正确的话:
Windows 开发服务器位于 servername.org.com:80 您在 Windows 开发服务器上创建了第二个网站,并将其添加到 Windows 开发服务器主机文件 127.0.0.1 test1.com
当你连接到该服务器并在该服务器浏览器中访问 test1.com 时,它会从其 hosts 文件中看到 test1.com 位于 127.0.0.1,这是本地的(即你所在的服务器),并且你成功了
当你使用家用电脑时,如果主机文件中没有 test1.com 条目,则无法正常工作
这是预期
您需要有一个指向 servername.org.com 的 IP 地址的实际 test1.com DNS 条目,或者您的 PC 上的 hosts 文件条目包含一个条目
$servername.org.comsIP地址 test1.com
如果没有上述任何一个,这将不起作用,因为您的浏览器无法解析 test1.com。
即使您的计算机位于同一个虚拟网络上,它也不知道 test1.com 位于何处。
如果您想同时托管同一个网站的多个版本,最简单的方法可能是在不同的端口上创建它们,或者将配置存储在 GIT 或其他存储库中。有很多方法可以做到这一点,这实际上取决于你想做什么。
答案2
正如蒂米·布朗所指示的那样,这就是我最终做的事情。
我的设置是,在家用电脑上连接 VPN。我远程桌面连接到我的网络服务器,在那里我可以做任何事情。如果我没有连接到 VPN,我就无法远程登录。基本上在同一个网络上。
在我的 IIS 上,我有一个“默认网站”,我可以在 Web 服务器上的浏览器上以localhost
或 的形式访问via IP or server name
它。正如预期的那样,这会将我带到 IIS 启动页面。如果我在自己的 PC 上执行此操作,但仍连接到 VPN,我显然无法使用,localhost
因为即使我连接到 VPN,它在我的家用 PC 上也是不同的。因此,如果我想在我的家用 PC 上访问相同的 IIS 启动页面,那么我需要输入servername.org.com
或 我也可以使用服务器的 IP。
在我的 IIS 上,我创建了一个名为“测试”的附加网站。在我的绑定中网站,我将其移植到 8080。这意味着如果我在 Web 服务器上的浏览器上使用localhost:8080
或IP:8080
或。这将带我到“测试”网站的启动页面。现在,如果我在家用电脑上执行同样的事情,我需要指定端口以获取“测试”网站启动页面,即或,否则它只会将我引导到与我的 Web 服务器无关的现有实时网站。但是,我不想使用来访问我的测试网站。我想通过 访问它。这是我修改 Web 服务器的主机文件并添加的地方:hostname:8080
servername.org.com:8080
IP:8080
test.com
servername.org.com:8080
test.com
127.0.0.1 test.com
因此现在,在 Web 服务器上的浏览器上,我可以通过 访问“测试”网站,test.com
但如果我真的想访问,我仍然可以通过localhost:8080
或访问IP:8080
,但我更喜欢使用test.com
。但是,如果我在自己的 PC 上访问test.com
,同时仍然连接到 VPN,则无法访问。但正如 Timmy 所说,这是意料之中的,从他的回答来看,我最终修改了自己 PC 的主机文件以包含以下内容:
IPofServer test.com
现在,如果我尝试在我的 PC 上访问test.com
,它会带我进入 IIS 启动页面,但这不是我想要的,我希望它会带我进入“测试”网站启动页面。但我确实尝试了,test.com:8080
它带我进入了我想要的页面,但我仍然不想在 URL 中包含端口,所以我修改了我自己的 PC 的主机文件以包含一个端口,如下所示:
IPofServer:8080 test.com
但我发现这样做不行,hosts 文件不支持端口。所以如果我test.com
在自己的电脑上再次尝试访问,它会带我进入一个test.com
与我的网络服务器无关的实时网站。所以我最终使用 ngrok 生成一个 URL,我可以使用这个 URL 指向test.com:8080
它,如下所示:
ngrok http http://test.com:8080
这会生成一个我可以使用的指向页面test.com:8080
启动页的 URL。
更新
此时我意识到,由于我现在正在使用 ngrok,我甚至不需要更改我自己的 PC 的主机文件。我理想情况下希望使用我自己的 URL,test.com
但这可能不可行,但由于 ngrok 会生成 URL,我可以使用:
ngrok http http://servername.org.com:8080
本质上工作原理相同。ngrok 确实有一个付费计划,我可以使用子域名,但目前免费选项对我来说是最好的。