我们没有内部网络服务器,所有内容都托管在主机上,但我们确实希望能够使用简短的私有域名。例如,我希望能够在我们的浏览器中输入“http://维基“它将被重定向到公共 URL 上的网页”https://mycompany.atlassian.net/wiki“。
我可以使用 hosts 文件在自己的机器上执行 DNS 重定向技巧。有没有更好的方法,而不必要求团队中的每个人都手动更改他们的 hosts 文件?我们办公室内没有任何私人网络服务器。一切都在云端。
答案1
没有 DNS 服务器的情况下如何进行 DNS 重定向?
(我假设你的意思是CNAME
s,因为 DNS 不会重定向)根据定义,你不能。除非你使用 hosts 文件黑客技术。还请注意,虽然你可以将CNAME
主机名转发wiki
到,mycompany.atlassian.net
但不能使用 DNS“重定向”wiki
到mycompany.atlassian.net/wiki
。问题是什么?/wiki
最后的 。这不仅仅是一个主机名,而是一个通过 HTTP 提供的目录。DNS 没有这个概念。DNS 只知道主机名和域。如果你想被wiki
转发到,mycompany.atlassian.net/wiki
你需要 HTTP 重定向。
有没有更好的方法,而不必要求团队中的每个人都手动更改他们的主机文件?
如果您要重定向到目录,则使用 DNS 服务器;CNAME
如果您要将 URL 完全重定向到目录,则使用 HTTP 服务器。您尝试做互斥的事情,并且会继续感到沮丧和受挫。
但我们确实希望能够使用简短的私有域名。
你想要一些需要努力的事情,但又不想付出努力。这不会有好结果。但是听着!我有解决方案……
最佳解决方案:
不要再尝试使用 DNS 捷径,而是使用与您的团队1中存在的维恩图完美相交的正确工具:浏览器书签。
1 该维恩图为:懒得输入长 URL,同时又不愿意做使短 URL 正常工作所需的工作。
答案2
您需要的不仅仅是 DNS,而且还是一个 HTTP 重定向。 http://wiki
需要定向到能够识别它并提供301
或302
重定向到适当地址的服务器。
因此,为了使其在您的本地网络中工作,您需要一个配置适当的 Web 服务器来提供 HTTP 重定向服务,并且您需要一个本地 DNS 服务器来将请求发送到该 Web 服务器。
您的网络上可能已经有本地 Web 和/或 DNS 服务器,在这种情况下,配置需要适合您所使用的服务器类型。
也就是说,假设您有一个 Linux 机器192.168.1.2
,运行 dnsmasq 和 nginx,那么下面的操作就可以正常工作。这是即兴的,不是经过测试的配置。应该差不多,但我可能犯了一个错误。
在/etc/hosts中:
wiki 192.168.1.2
在/etc/nginx/sites-available中:
server {
listen 80;
server_name wiki;
rewrite ^ $scheme://mycompany.atlassian.net/wiki permanent;
}
你需要一个符号链接:
ln -s /etc/nginx/sites-available /etc/nginx/sites-enabled
重新加载你的 nginx 配置:
service nginx reload
确保路由器上的 dhcp 将用户指向192.168.1.2
名称服务器,这样就可以了。
答案3
在我看来,另一个答案是准确的,但本着回答你的问题的精神,hosts 文件是我能想到的唯一选择。
如果您正在运行 Windows 并且在 Windows 域中,则可以使用组策略将主机文件推送到您的桌面,并且只需维护一个文件。
如果您使用多个平台,您仍然可以使用网络共享和可以手动运行的脚本来执行相同操作以提取主机文件的更新。
您还可以运行具有特定规则的代理服务器来转发匹配的请求http://维基到特定的 FQDN,但随后您需要让每个人都配置代理设置、运行代理服务器等。
所有这些工作真的值得不告诉人们使用书签或输入完全合格的 URL 吗?