Heroku应用程序链接到域名提供商网站

时间:2016-06-15 16:42:10

标签: ruby-on-rails ruby-on-rails-4 ssl heroku dns

我遇到了麻烦。

我的网站在heroku上运行,其中包含来自其他提供商的自定义域名。我用正确的DNS建立了2之间的连接。

它似乎可以在我的浏览器上运行但它在其他计算机上无法运行,并且在清除缓存后它也无法在地雷上运行。当他们访问该网站时,它会显示域名提供商网站。

起初我认为它与ssl有关,因为我得到错误说你的连接不是私密的。然后我将 config_force_ssl 更改为false:

 # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  config.force_ssl = false

似乎我的域名提供商DNS设置中的A记录链接到IP地址,而Heroku不支持IP地址。或者它仍然可能是ssl相关的东西。

以下是我的域名提供商DNS

ftp.example.io - CNAME - example.io
www.example.io - CNAME - example-example.herokuapp.com
example.io - A - 91.184.0.100
localhost.example.io - A - 91.184.0.100
webmail.example.io - A - 91.184.0.100
*.example.io - A - 91.184.0.100
mail.example.io - A - 91.184.0.94

以下是我在heroku上添加的域名

Domain name: example.io
DNS Target: example-example.herokuapp.com

我不知道它可能是什么。任何帮助将不胜感激

4 个答案:

答案 0 :(得分:0)

您应该在DNS提供商上创建CNAME记录:https://devcenter.heroku.com/articles/custom-domains

答案 1 :(得分:0)

Heroku不支持DNS。但您可以添加自定义域和子域,并从您的域托管设置重定向到Heroku应用程序。这是Youtube

的小镜头
#for domain
$ heroku domains:add www.example.com`
Adding www.example.com to example... done
>
#for subdomain
$ heroku domains:add blog.example.com`
Adding blog.example.com to example... done

答案 2 :(得分:0)

将heroku域名配置为ALTER TRIGGER [dbo].[IC_ProductUpdate] ON [dbo].[StockItem] AFTER UPDATE AS BEGIN -- update the queue for those entries that already exist -- those rows that *DO NOT* exist yet are not being touched UPDATE puq SET Synced = 0 FROM dbo.IC_ProductUpdateQueue puq INNER JOIN Inserted i ON puq.StockItemID = i.StockItemID INNER JOIN Deleted d ON d.StockItemID = i.StockItemID WHERE i.Name <> d.Name OR i.Description <> d.Description -- for those rows that don't exist yet - insert the values INSERT INTO dbo.IC_ProductUpdateQueue (StockItemID, Synced) SELECT i.StockItemID, 0 FROM Inserted i INNER JOIN Deleted d ON d.StockItemID = i.StockItemID WHERE i.Name <> d.Name OR i.Description <> d.Description AND NOT EXISTS (SELECT * FROM dbo.IC_ProductUpdateQueue puq WHERE puq.StockItemID = i.StockItemID) END

答案 3 :(得分:0)

好的,我修复了这个问题。对于那些正在努力奋斗的人来说,我就是这样做的:

第1步

  

制作Cloudflare帐户,并将购买的域名添加到cloudflare和   转移DNS设置'

第2步

  

将您的域名添加到您的heroku面板。在heroku网站上,登录,转到   到'设置'按'添加自定义域'   - Add both your domain 'www.example.com' and your root domain 'example.com'

第3步

  

如果您尚未更改初始域中的域名服务器   提供商指向cloudflare名称服务器,请立即执行此操作。您   可以找到分配给你的cloudflare名称服务器   'DNS' -> 'cloudflare name servers'下的cloudflare面板

第4步

  

转到cloudflare帐户的“DNS”并remove all records (A, CNAME, ALIAS,TXT etc..).   现在添加CNAME条记录。该名称应该是您的网站“www.example.com”(带有www),它应该指向您的heroku应用example-example.herokuapp.com

第5步

  

创建Google Business帐户。并跟随   Google提供的验证步骤。

第6步

  

登录admin.google.com并转到“domains”。如果你看不到   'domains'点击'更多元素'。现在点击“change redirect”和   将您的根域“example.com”重定向到“www.example.com”。

第7步

  

转到您的cloudflare面板,然后转到“DNS”,现在是add 4 'A' Records。    - 所有4个“A”记录都应具有根域'example.com'的名称,并且应指向216.239.32.21,   216.239.34.21216.239.36.21216.239.38.21,这是ip   Google提供的地址可让重定向工作。

旁注

  

在cloudflare上,'A'记录状态需要设置为'仅限DNS'   以及'CNAME'记录状态为'DNS和HTTP代理(CDN)'

第8步

  

在您的rails应用上转到production.rb并确认   config.action_mailer.default_url_options = { host: 'https://example-example.herokuapp.com' }设置为   config.action_mailer.default_url_options = { host: 'example-example.herokuapp.com' }所以只需删除“https://”。

     

config.force_ssl也应该是false

     

完成后请确保将结果上传到heroku。

第9步

  

在cloudflare转到'crypto'并确保SSL设置为'Flexible',   如果不是,请立即更改,可能需要一些时间才能完成cloudflare的更改。

祝贺!!!!!!!!!!!!!

  

此时,您的网站应该正常运行并为两者工作   您的根域以及您的完整域名。

<强> EXTRA

  

只有您想通过GMAIL发送商业电子邮件(例如info@example.com)

     

在cloudflare上转到“DNS”并添加5 'MX' Records

     
      
  1. example.com(您的根域) - 使用aspmx.l.google.com
  2. 指向priority 1   
  3. example.com(您的根域) - 使用alt1.aspmx.l.google.com
  4. 指向priority 5   
  5. example.com(您的根域) - 使用alt2.aspmx.l.google.com
  6. 指向priority 5   
  7. example.com(您的根域) - 使用alt3.aspmx.l.google.com
  8. 指向priority 10   
  9. example.com(您的根域) - 使用alt4.aspmx.l.google.com
  10. 指向priority 10         

    注意: TTL应设置为1 hour的{​​{1}}。

现在去那里成为自己最好的版本!!