是否有允许编辑其主机文件的公共代理?

是否有允许编辑其主机文件的公共代理?

在我的部署环境中,我使用本地 Hosts 文件将域目标更改为我用于开发的另一台服务器。它运行良好,并且易于设置。但一如既往,有一个问题。如果我们的客户希望在将开发站点部署到主服务器之前查看它,我们不能强迫他设置他的 hosts 文件,因此他无法访问该站点。

我在想,一定有一些在线工具可以根据您的定义将发送给它的所有请求重定向到服务器。所以我只需将链接发送给我的客户,他就不会注意到任何事情,就像网络代理一样。我在谷歌上搜索了这个,但没有找到任何有用的东西。

你们有人知道这个工具吗?(我不关心它是免费的还是付费的解决方案。我可能会自己写,我只是不想重新发明轮子。)

如果不存在,您会推荐什么部署解决方案/程序?

感谢所有回复

答案1

您应该使用 DNS 服务器,并为开发站点和生产站点设置不同的域名。例如 dev.example.com 与 www.example.com

您的网站不应依赖于 DNS 名称,因为网站名称可能会发生变化。假设您有 www.example.com,而您的公司被 example2 收购,您不仅要将主机名和证书更改为 www.example2.com,还要更改您的代码。

另一种方法是将开发站点公开为 www.example.com/dev。为此,您可以使用反向代理将 /dev 重定向到内部开发站点。如果您提供有关架构的详细信息,我们的社区将更容易提供更好的解决方案。

还可以根据其他因素(如源 IP、身份验证、HTTP cookie)显示不同的站点(产品与开发)...

您还可以将公共服务器保留在端口 80/TCP 上,将开发服务器保留在其他端口上,例如 8080/TCP。或者您可以将 HTTPS 站点保留为开发站点。

答案2

如果您的客户端不想修改 /etc/hosts,DNS 是最简单的解决方案。

只需将 www-dev.example.com 指向 dev 网站即可。不要忘记只允许您的客户端访问 www-dev.example.com(密码、防火墙、acl...)。

如果网站需要访问者输入 www.example.com,那么这种方法就行不通,但在这种情况下,您在问题中描述的方法也行不通。

我还没有听说过任何在线工具可以做到你所描述的,但是我知道的所有代理服务器(varnish,apache甚至squid)都知道如何将任何http请求转发到同一个后端。

答案3

保持简单。我要么按照 Mircea 的建议使用反向代理,要么将网站托管在临时位置(子域、域或文件夹)。

相关内容