【发布时间】:2014-09-23 07:59:43
【问题描述】:
我正在考虑在我的公司实施一个简短/友好的 URL 系统。
我已经阅读了很多描述如何做到这一点的文章。我理解这个过程,但我仍然有一些问题:我们有服务器 A 和客户端 B。服务器 A 具有 URL 重写和重定向的所有逻辑。但是,在该服务器外部但在同一域中的客户端 B 如何知道 http://server.A/theURL 的主机名或 IP 是什么?如果客户端不知道“server.A”的名称,它将返回“未知主机”错误。您如何在网络中“发布”那个短网址“域”?我认为您不必修改每台 PC 的 .hostname 文件...
谢谢,
【问题讨论】:
-
您的服务器将执行永久重定向 (301),客户端从该初始请求中获取该信息。 这假定客户端可以访问该服务器 - 也就是不在防火墙后面等
-
是的,但是客户端如何知道短 url 属于该服务器。应该有“short.url”到该服务器的映射。你是怎么做到的?
-
如您在帖子中所说,映射是通过服务器 A 完成的。一旦将短 URL 转换为真实 URL,它就会将该 URL 发送给客户端 B,然后客户端 B 会正常连接。
-
我想我没有清楚地解释自己。如果我现在尝试访问“short.url/asdfasd”,我的浏览器会显示“未知主机”。我的电脑如何知道“short.url”的 IP 或真实主机名。它必须在 DNS 服务器或其他东西中。但是,如果它在 Intranet 中,你怎么做呢?
-
是的,这就是为什么我的第一条评论说“又名不在防火墙后面等”。如果是这种情况,您将使用反向代理。大多数网络服务器都可以做到这一点,但我更喜欢nginx。它只会让外部服务器(服务器 A)代表任何试图访问 short.url 的人进行通信(就像客户端 B 的工作方式一样)。客户端 B 永远不会知道 short.url 的真实 IP/主机名,因为它只会在外部看到服务器 A
标签: short-url