gpt4 book ai didi

ruby-on-rails - heroku 域 :add really do behind the curtains? 是什么

转载 作者:行者123 更新时间:2023-12-04 05:20:47 26 4
gpt4 key购买 nike

假设我正在运行我的应用程序

sakana.herokuapp.com

我拥有域 www.fishywebsites.com

如果我指向我的 DNS 昵称 对于 鱼腥网站 指向 sakana.herokuapp.com ,难道这还不足以使网站正常显示吗?

做什么

heroku domains:add www.fishywebsites.com

真的吗?

最佳答案

Heroku的routing mesh接受传入的 HTTP 请求并将它们发送到适当的应用程序,因为它在测功网格中移动。为此,它依赖于 HTTP Host: header,对应浏览器地址栏中的域名。

Heroku 有一个通配符 DNS 条目,它映射 *.herokuapp.com到路由网格。您可以连接到此空间内的任何名称,例如http://0gtxygq7t0haalc4.herokuapp.com/ ,即使没有具有该名称的应用程序——您连接到路由网格,它会根据 Host: 执行查找 header ,并确定没有明智的方法来路由此请求。

打破它:浏览器看到完整的 URL,并提取域名。然后它会进行 DNS 查找:

$ dig 0gtxygq7t0haalc4.herokuapp.com
; <<>> DiG 9.8.3-P1 <<>> 0gtxygq7t0haalc4.herokuapp.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38567
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;0gtxygq7t0haalc4.herokuapp.com. IN A

;; ANSWER SECTION:
0gtxygq7t0haalc4.herokuapp.com. 60 IN A 23.21.103.189

;; Query time: 128 msec
;; SERVER: 2001:470:20::2#53(2001:470:20::2)
;; WHEN: Wed Dec 5 17:04:36 2012
;; MSG SIZE rcvd: 64

这告诉浏览器连接到 23.21.103.189。将其与协议(protocol) ( http) 配对,它会在端口 80 上建立到该 IP 的 TCP 连接。路由网格不知道也不关心您是如何找到它的,因为 DNS 查找涉及一组完全独立的服务器——它只知道你正在连接它。

然后浏览器发送如下内容:
GET / HTTP/1.1
Host: 0gtxygq7t0haalc4.herokuapp.com
...

这是 Heroku 路由网格找出您想要的站点的时候。

如果您为 foo.bar.baz 添加 CNAME 条目至 *.herokuapp.com ,您将成功将该名称连接到路由网格。但是,直到您 heroku domains:add foo.bar.baz ,Heroku 不知道哪个应用程序应该接收这些请求——它会看到 Host: foo.bar.baz ,并且它不知道涉及哪个应用程序。 DNS 查找在 HTTP 下的一层运行,您需要两者来路由您的应用程序。

关于ruby-on-rails - heroku 域 :add really do behind the curtains? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com