虽然我已经在我的VPS上完成了这个,但我从来没有为heroku应用程序做过这个,现在我必须为一个相当大的公司做这个,所以我真的想要一个简单的项目符号列表如何这样做。
我读过these instructions,我仍然有点不清楚它们究竟是什么意思。再说一次,如果我有更多时间购买一些垃圾领域并自己测试,但我没有时间陪伴我,需要第一次做到这一点!
值得庆幸的是,目前不需要SSL。
以下是我可以收集的内容,我需要做的是将网址www.foobaryfoobs.com
指向我的应用程序,在warm-chamber-1882.herokuapp.com
运行。请纠正我:
1)我将www.foobaryfoobs.com
添加到包含应用程序的本地存储库。
我认为我是通过导航到本地计算机上的存储库并运行:
来实现的$ heroku domains:add www.foobaryfoobs.com
这是如何工作的?它是否更新了我需要添加到存储库然后推送到heroku的某个配置文件?
这里有什么警告或最佳做法吗?我应该添加哪些其他域名?例如heroku domains:add *.foobaryfoobs.com
?
Heroku建议我们在这里使用上面的通配符域。为什么呢?
2)登录创建www.foobaryfoobs.com
的注册商,然后导航到其控制面板。
3)更新域的CNAME记录以指向warm-chamber-1882.herokuapp.com
我大部分时间都在做什么?现在我只是等待吗?
是否没有与IP相关的内容?
该域名附有数十封电子邮件。只要我不接触MX记录,我应该没问题?
什么是根域名?我为什么要添加它?
我为什么要关心:
某些DNS主机提供了一种获取类似CNAME功能的方法 区域顶点使用自定义记录类型。
4)更新域的FORWARD / URL记录,以便foobaryfoobs.com
指向www.foobaryfoobs.com
1)这是应该如何设置的?:
该应用:
warm-chamber-1882.herokuapp.com
应该具有以下配置(保存在一些奇怪的配置文件中,我不介意了解更多信息):
domains:
www.foobaryfoobs.com
*.foobaryfoobs.com
域名:
www.foobaryfoobs.com
应该有以下记录:
CNAME: warm-chamber-1882.herokuapp.com
URL / FORWARD: foobaryfoobs.com target: www.foobaryfoobs.com
MX: *as long as I don't touch them the emails will still work*
2)我是否受到反对:
确保您的DNS配置符合以下内容非常重要 您已添加到Heroku的自定义域名。特别是,如果你有 将您的DNS配置为* .example.com指向 example.herokuapp.com,请确保您还运行heroku域:添加 * .example.com的。否则,恶意的人可能会将baddomain.example.com添加到他们的Heroku应用程序并接收预期的流量 为您的申请。
3)如何调整具有SSL后端部分的网站的步骤?
答案 0 :(得分:5)
$ heroku domains:添加www.foobaryfoobs.com
这是如何工作的?它是否更新了某些配置文件,我需要将其添加到存储库然后再推送到heroku?
我不确切知道它是如何在内部工作的,但是这个命令相当于在apache配置文件中添加ServerName
,当请求到达www.foobaryfoobs.com
时它将被转发到heroku因为dns
,但heroku无法确定您的应用。您将看到下图。
这就是为什么他们需要您的域名,以便他们知道哪些应用属于哪些域名。他们还需要它用于域优先目的。只要您可以允许您的用户访问Heroku子域即warm-chamber-1882.herokuapp.com
,您的代码就不需要进行任何更改。如果您不希望用户访问heroku子域,您必须传递301
http状态,以便将其重定向到您的实际域,即www.foobaryfoobs.com
。为此,您可以在应用程序控制器中添加它
before_action :forward_to_domain_if_heroku_subdomain
private
def forward_to_domain_if_heroku_subdomain
if request.host == 'warm-chamber-1882.herokuapp.com'
redirect_to "http://www.foobaryfoobs.com" , status: 301
end
end
这里有什么警告或最佳做法吗?我应该添加哪些其他域名? heroku域名:例如添加* .foobaryfoobs.com?
如果您只想使用www.foobaryfoobs.com
作为您的域名,此命令就足够了,即
heroku domains:add www.foobaryfoobs.com
如果您想分配裸域foobaryfoobs.com
,那么您还必须运行
heroku domains:add foobaryfoobs.com
如果您的应用程序使用subdomain.foobaryfoobs.com
之类的子域,那么您还必须运行
heroku domains:add foobaryfoobs.com
2)登录创建www.foobaryfoobs.com的注册商并导航至其控制面板。
要珍贵,你必须做DNS管理工具。
3)更新域名的CNAME记录以指向warm-chamber-1882.herokuapp.com
是
我大部分时间都在做什么?我现在等一下吗?
是的,但也有其他的事情。
没有与IP相关的东西吗?
是的,没有与ip相关的东西。
该域名附有数十封电子邮件。只要我不接触MX记录,我应该没问题?
是。
根域名是什么?我为什么要添加它?
如果您想接受warm-chamber-1882.herokuapp.com
(非www. warm-chamber-1882.herokuapp.com
)用户的请求,则必须添加该请求。
我为什么要关心: 某些DNS主机提供了一种使用自定义记录类型在区域顶点获取类似CNAME功能的方法。
ALIAS
或ANAME
类型的记录。 (DNSimple提供)。您必须关心它,因为从该自定义记录类型可以轻松添加记录。它们就像预定义的模板,例如ALIAS
是A
记录的模板。 4)更新域名的FORWARD / URL记录,以便foobaryfoobs.com指向www.foobaryfoobs.com
对于一个小说,请解释为什么这是必要的。
这是必要的,因为www.foobaryfoobs.com
和foobaryfoobs.com
在images.google.com
和news.google
方面有所不同。 www
并不特别,它只是一个子域名。如果您不这样做,则用户无法使用foobaryfoobs.com
中的您的网站,但可以访问www.foobaryfoobs.com
。
1)这是应该如何设置的?
是的,这是正确的。但是,如果您想允许foobaryfoobs.com
和www.foobaryfoobs.com
,则必须执行下表中的操作。如果您的应用不使用*.foobaryfoobs.com
以外的任何子域,则不需要www
记录。实际上添加*.foobaryfoobs.com
是不好的做法。
Type | Name | Content
---------------------------------------
ALIAS | foobaryfoobs.com | yoursite.herokuapp.com
CNAME | www.foobaryfoobs.com | yoursite.herokuapp.com
确保您的DNS配置与您添加到Heroku的自定义域一致非常重要。特别是,如果您已将* .example.com的DNS配置为指向example.herokuapp.com,请确保您还运行heroku域:add * .example.com。否则,恶意的人可能会将baddomain.example.com添加到他们的Heroku应用程序并接收针对您的应用程序的流量。
是。此外,你不必担心这一点。如果恶意用户可以在您的域中设置子域,那么他就可以做很多破坏:P。实际上,恶意用户无法访问您的DNS管理工具,因此您可以安全无虞。
答案 1 :(得分:3)
在您的注册商主机记录中,您要将@
设置为重定向到www.foobaryfoobs.com,将www
记录设置为warm-chamber-1882.herokuapp.com
的CNAME,这是因为Heroku可能会更改与该主机名关联的IP地址,如果您在注册商中有IP,则还需要更新。使用CNAME将该url绑定到ip,以便当Heroku更新ip时,您的站点仍然处于运行状态。只要您不接触MX记录,您的电子邮件就可以了。
为了再次保护*.foobaryfoobs.com
问题,他们警告您也可以设置一个主机记录,并将其设为CNAME并指向warm-chamber-1882.herokuapp.com
。
就设置SSL而言,您可以查看this article,这可以让您进行设置。
答案 2 :(得分:0)
我只能回答其中一些问题:
1)a)它更新存储在与你的应用相关的heroku端的一些配置。您可以看到,如果您登录到heroku站点并查看应用程序的配置。 b)不知道 c)这会让人们同时输入“http://www.foobaryfoobs.com”和“http://foobaryfoobs.com”,并且两者都可以转到您的应用。
答案 3 :(得分:0)