首页 文章 精选 留言 我的

精选列表

搜索[安全加速 SCDN],共10000篇文章
优秀的个人博客,低调大师

使用HTTP/2服务端推送技术加速Node.js应用

四月份,我们宣布了对 HTTP/2 服务端推送技术的支持,我们是通过 HTTP 的 Link 头部来实现这项支持的。我的同事 John 曾经通过一个例子演示了在 PHP 里支持服务端推送功能是多么的简单。 我们想让现今使用 Node.js 构建的网站能够更加轻松的获得性能提升。为此,我们开发了 netjet 中间件,它可以解析应用生成的 HTML 并自动添加 Link 头部。当在一个示例的 Express 应用中使用这个中间件时,我们可以看到应用程序的输出多了如下 HTTP 头: 本博客是使用 Ghost(LCTT 译注:一个博客发布平台)进行发布的,因此如果你的浏览器支持 HTTP/2,你已经在不知不觉中享受了服务端推送技术带来的好处了。接下来,我们将进行更详细的说明。 netjet 使用了带有定制插件的 PostHTML 来解析 HTML。目前,netjet 用它来查找图片、脚本和外部 CSS 样式表。你也可以用其它的技术来实现这个。 在响应过程中增加 HTML 解析器有个明显的缺点:这将增加页面加载的延时(到加载第一个字节所花的时间)。大多数情况下,所新增的延时被应用里的其他耗时掩盖掉了,比如数据库访问。为了解决这个问题,netjet 包含了一个可调节的 LRU 缓存,该缓存以 HTTP 的 ETag 头部作为索引,这使得 netjet 可以非常快的为已经解析过的页面插入 Link 头部。 不过,如果我们现在从头设计一款全新的应用,我们就应该考虑把页面内容和页面中的元数据分开存放,从而整体地减少 HTML 解析和其它可能增加的延时了。 任意的 Node.js HTML 框架,只要它支持类似 Express 这样的中间件,netjet 都是能够兼容的。只要把 netjet 像下面这样加到中间件加载链里就可以了。 varexpress=require('express'); varnetjet=require('netjet'); varroot='/path/to/static/folder'; express() .use(netjet({ cache:{ max:100 } })) .use(express.static(root)) .listen(1337); 稍微加点代码,netjet 也可以摆脱 HTML 框架,独立工作: varhttp=require('http'); varnetjet=require('netjet'); varport=1337; varhostname='localhost'; varpreload=netjet({ cache:{ max:100 } }); varserver=http.createServer(function(req,res){ preload(req,res,function(){ res.statusCode=200; res.setHeader('Content-Type','text/html'); res.end('<!doctypehtml><h1>HelloWorld</h1>'); }); }); server.listen(port,hostname,function(){ console.log('Serverrunningathttp://'+hostname+':'+port+'/'); }); netjet 文档里有更多选项的信息。 查看推送了什么数据 访问本文时,通过 Chrome 的开发者工具,我们可以轻松的验证网站是否正在使用服务器推送技术(LCTT 译注: Chrome 版本至少为 53)。在“Network”选项卡中,我们可以看到有些资源的“Initiator”这一列中包含了Push字样,这些资源就是服务器端推送的。 不过,目前 Firefox 的开发者工具还不能直观的展示被推送的资源。不过我们可以通过页面响应头部里的cf-h2-pushed头部看到一个列表,这个列表包含了本页面主动推送给浏览器的资源。 希望大家能够踊跃为 netjet 添砖加瓦,我也乐于看到有人正在使用 netjet。 Ghost 和服务端推送技术 Ghost 真是包罗万象。在 Ghost 团队的帮助下,我把 netjet 也集成到里面了,而且作为测试版内容可以在 Ghost 的 0.8.0 版本中用上它。 如果你正在使用 Ghost,你可以通过修改 config.js、并在production配置块中增加 preloadHeaders 选项来启用服务端推送。 production:{ url:'https://my-ghost-blog.com', preloadHeaders:100, //... } Ghost 已经为其用户整理了一篇支持文档。 总结 使用 netjet,你的 Node.js 应用也可以使用浏览器预加载技术。并且 CloudFlare 已经使用它在提供了 HTTP/2 服务端推送了。 作者:Terin Stock 来源:51CTO

优秀的个人博客,低调大师

EMC的RackHD Machine Driver,加速数据中心对容器的支持

●RackHD Machine Driver已与Docker Machine集成,以通过RackHD配置和管理Docker主机。●RackHD Machine Driver是与硬件无关的解决方案,支持直接在服务器裸机上部署Docker Engine和Docker Swarm。●RackHD Machine Driver是EMC {code}团队负责的一系列开源容器解决方案中的最新创新。 EMC公司(NYSE:EMC)宣布推出RackHDMachine Driver,这是一款与硬件无关的解决方案,支持直接在裸机上部署Docker解决方案。RackHD Machine Driver已与Docker Machine集成,以针对运行Docker Engine以及未来出台的其他Docker解决方案的物理服务器进行全生命周期管理。新的RackHD Machine Driver计划整合了交钥匙型容器平台和RackHD硬件管理及调配功能,可帮助用户简便地在服务器裸机上部署Docker容器,并简化软件基础架构部署。该计划是EMC {code}团队一系列面向开发人员及开源社区的容器解决方案计划中的最新计划。 RackHD Machine Driver运用RackHD硬件管理及调配功能和RackHD开放API实现硬件管理自动化,因此可提高效率。这款最新解决方案与专注于实现虚拟机及专有系统自动化的其他同类解决方案不同,有了RackHD Machine Driver,操作人员和开发人员就可以简便地利用容器提高基础架构及应用的运行和开发效率。EMC {code}团队今年推出的其他开源解决方案还包括REX-Ray、Polly、libStorage和UniK。 企业级环境对容器和应用平台的需求与日俱增,因此企业也越来越期望在DevOps及软件方法指导下运行基础架构。RackHD Machine Driver使企业中的各种团队能够灵活自如地运用开源基础架构和容器。通过与Docker Machine紧密集成,采用创新管理方法的RackHD Machine Driver在私有云及实体数据中心中可与Docker完美匹配。二者结合使容器平台能够成功进入实体数据中心,并有助于实现新一代软件定义的数据中心。 RackHD Machine Driver的主要特点: ●对运行Docker解决方案的物理服务器进行全生命周期管理; ●与服务器厂商完全无关,调配功能适用于各种数据中心; ●通过可定制工作流程支持额外的集成和操作系统; ●通过Docker容器简化操作体验; ●可用来配置其他应用平台; ●通过与Rancher 1.0集成,支持在私有云中的裸机上部署Docker解决方案,简化容器平台使用体验。 上市 RackHD Machine Driver已开始在GitHub上提供。 EMC高管引言: EMC公司EMC {code}事业部技术副总裁Josh Bernstein “容器的使用已经蔚然成风。我们的目标是,提供紧密结合的整体解决方案,使容器和存储系统易于使用,并得到进一步普及,同时帮助企业用户有效利用灵活的容器生态系统及其提供的多种选择。” EMC客户引言: Adobe公司基础架构设计师Frans Van Rooyen “RackHD裸机配置和调配引擎具备更高的自动化和工作流程及固件管理水平,帮助我们节省了大量基础架构部署时间。” EMC合作伙伴引言: Docker公司业务拓展与技术联盟事业部副总裁Nick Stinemates “随着越来越多的企业用户在生产环境中部署Docker解决方案,增加持久性存储等关键功能也变得愈加重要了。EMC {code}团队的工作有助于存储与容器调配更简便、更紧密地结合成一个整体。” Rancher实验室联合创始人、首席执行官Sheng Liang “Rancher 1.0直接利用RackHD Machine Driver支持私有云裸机部署。Rancher与RackHD相结合,可提供丰富的用户体验,使DevOps管理员能够在生产环境中大规模运行Docker,这种能力正是容器社区所需要的。”本文转自d1net(转载)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册