首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >grails从CDN为index.html提供服务

grails从CDN为index.html提供服务
EN

Stack Overflow用户
提问于 2013-12-07 05:19:05
回答 2查看 464关注 0票数 3

我希望我的grails应用程序部署在我的域的根目录中:

www.example.com

而不是

www.example.com/myapp

然而,www.example.com/index.html将是静态的(静态html、图像等)。我关心的是让应用服务器提供主页的性能。我是否可以配置我的grails应用程序/ cdn来服务index.html及其内容,并让应用程序服务器处理动态页面?

我正在使用grails 2.2.4,我将使用亚马逊S3 + ElasticBeanstalk + CloudFront。

或者,我应该担心性能吗?我是grails的新手,但我的理解是静态内容应该由new服务器(Apache)提供服务。由于没有apache,我正在寻找另一种方法来减轻off服务器的负载。CDN似乎是一个好主意。

EN

回答 2

Stack Overflow用户

发布于 2013-12-07 05:35:20

你当然可以这样做。我个人的建议是将你的图片保存在S3上,并在此基础上使用Cloud Front。除非您的静态HTML本身太大,否则我的建议是让Grails成为Grails,并像典型的Grails项目那样为JS和CSS利用Grails资源-即使您的索引页面现在不会执行任何动态操作。越是打破Grails的惯例,构建和持续集成等复杂的事情就会变得越复杂。看看使用缓存,缩小插件和性能是非常好的。

至于部署到根"/“上下文,您可以通过为您的Tomcat (或其他任何地方)部署使用"prod war ROOT.war”来完成,或者您可以将其构建为"whateverapp.war“并使用Apache mod_jk处理更复杂情况下的路由规则。

我已经完成了大概12个Grails项目,现在使用的是非常相似的架构。

票数 1
EN

Stack Overflow用户

发布于 2013-12-07 06:17:12

最简单的做法是从CloudFront为整个域提供服务,然后从Grails应用程序为主页提供服务。您可以配置CloudFront来缓存对主页的请求,这样就可以最小化对Grails的请求数量。您可以将CloudFront直接映射到在Elastic Beanstalk环境中运行的ELB。

默认的Elastic Beanstalk配置不提供任何从Apache提供静态文件的方式;对Elastic Beanstalk的所有请求都被代理到Tomcat。您可以使用高级配置来设置它(使用.ebextensions机制)。

您还可以设置Cache plugin,以便在服务器端设置完整页面缓存(我也推荐使用Cache EhCache plugin )。将服务器端缓存与CDN缓存结合起来会让您走得更远。

顺便说一句,提供静态内容的另一个好选择是使用S3本身来提供页面。如果你不是在做太复杂的事情,它将为你节省设置和运行web服务器的工作,尽管使用Elastic Beanstalk没有太多事情要做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20433742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档