我正在使用Cloudflare管理我的域的DNS。
营销页面由Netlify托管。
主要应用程序由Heroku托管。
cloudflare +一个裸域(my-example.com)是否可以让Netlify和Heroku提供其他路径?
还是我被迫将其中一个托管服务放在子域上?
发布于 2018-06-29 20:18:30
免责声明:我为Netlify工作。
您可以在不运行自己的服务器或支付任何额外费用的情况下完成此操作。
由于Netlify已经有了CDN,将cloudflare的CDN (在设置中被“橙色云”激活)放在Netlify的前面是次优的。这样做除了效率低下之外,还破坏了Netlify的原子部署和回滚,也减缓了我们观察到的页面服务。它可能有效,但不被推荐。然而,CloudFlare的DNS性能很好,无需CDN就可以使用(关闭‘橙色云’)。他们的DNS可以很好地处理Netlify的CDN上的内容。
下面是如何设置通过Netlify实现这一目标的方法。
Netlify的代理(从技术上讲是反向代理)可以连接到您想要的任何后端,并且不会向访问者显示URL --它看起来(浏览器中的URL栏,HTTPS连接)似乎一直连接到my-example.com,但是内容是从后端返回的(包括HTTP状态代码)。如果由Heroku应用程序发送的Cache-Control: HTTP头指令指示,则此响应将缓存在Netlify的CDN上。请注意,CloudFlare 将更改缓存控制头的,以防您将其设置在它们代理的内容上!Netlify不会。)
下面是一个常见的设置:
/main/* https://yourapp.herokuapp.com/main/:splat 200! /app/* https://yourapp.herokuapp.com/main/:splat 200!
请注意,如果将/main或/app下的任何资产部署到Netlify,由于这些规则上的尾随!,它们将被忽略。请参阅https://www.netlify.com/docs/redirects/#note-on-shadowing获得更多关于该功能和替代方案的详细信息(TL;DR:在Netlify上部署/main/logo.png之类的东西,但是Heroku不应该为/main/*部署所有需要的内容)。
请注意,我建议在Netlify和Heroku (/main/*)上使用相同的路径,而不是代理/somethingelse/*,因为当路径匹配时,更容易调试资产加载。不过,这不是个要求。
发布于 2018-06-29 12:13:30
正如注释中提到的,它可能使用cloudflare企业服务。
但是您可以通过一个简单的nginx反向代理设置来完成它。
有DNS解析为nginx反向代理并基于路径,适当调用上游。
eg. example.com, and then direct queries for /path1 to 100.100.100.100 and for /path2 to 200.200.200.200https://stackoverflow.com/questions/51091788
复制相似问题