云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_广州外贸网站建设_12月免费

小七 141 0

现在每个人都可以在Cloudflare上与工人一起运行JavaScript

就在一年前的今天,Cloudflare给了我一个任务:让人们可以在Cloudflare的边缘运行代码。当时,我们还不知道那意味着什么。它是基于容器的吗?一种新的图灵不完全领域专用语言?卢阿?"功能"?有很多想法。最终,我们找到了一个现在看来很明显的选择:JavaScript,使用标准的serviceworsapi,在基于V8构建的新环境中运行。五个月前,我们给了你一个我们正在构建的预览,并开始了beta测试。如今,随着数千个脚本的部署和数十亿个请求的处理,Cloudflare worker现在已经为每个人准备好了。"离开VCL并采用Cloudflare Workers将使我们能够进行一些创造性的路由,从而使我们能够以比现在更快的速度向npm的数百万用户交付JavaScript。我们将在Cloudflare的平台上构建我们的下一代服务,我们可以用JavaScript来实现!"-CJ Silverio,npm公司首席技术官。云到底是什么?过去,web应用程序代码在服务器和浏览器之间被分割。它们之间有一个巨大但基本上是哑的网络,它只是将数据从一个点传送到另一个点。不要相信云的承诺我们相信云计算的真正梦想是你的代码生活在网络中。你的代码不是在"us-west-4"或"中南亚(孟买)"中运行的,它无处不在。更具体地说,它应该运行在最需要它的地方。当响应新西兰的用户时,您的代码应该在新西兰运行。在处理数据库中的数据时,代码应该在存储数据的机器上运行。当与第三方API交互时,您的代码应该在API所在的任何地方运行。当人类探险者到达火星时,他们不会高兴地等半个小时等你的应用程序响应——你的代码需要在火星上运行。Cloudflare员工是我们实现这一愿景的第一步。当您部署Worker时,它将在不到30秒的时间内部署到Cloudflare遍布全球100多个位置的整个边缘网络。您的域的每个请求都将由您的工作人员在靠近最终用户的Cloudflare位置处理,而不需要考虑各个位置。我们把越多的地点放到网上,你的代码就越"到处运行"好吧,好吧……它不会在火星上运行。然而。你在外面吗,埃隆?什么是工人?Cloudflare Workers的名字来源于webworkers,更确切地说是服务工人,W3C标准API用于在Web浏览器后台运行并拦截HTTP请求的脚本。Cloudflare worker是根据相同的标准API编写的,但是运行在Cloudflare的服务器上,而不是在浏览器中。以下是您可以使用的工具:使用最新的标准语言功能执行任何JavaScript代码。拦截和修改HTTP请求和响应url、状态、头和正文内容。直接响应员工的请求,或将其转发到其他地方。向第三方服务器发送HTTP请求。以串行或并行方式发送多个请求,并使用这些响应对原始请求组成最终响应。在已将响应返回给客户端后发送异步请求(例如,用于日志记录或分析)。控制其他Cloudflare功能,如缓存行为。工人的可能用途是无限的,我们很高兴看到我们的客户提出了什么。以下是我们在测试版中看到的一些想法:将不同类型的请求路由到不同的源服务器。在边缘扩展HTML模板,以减少源站的带宽成本。对缓存内容应用访问控制。将一小部分用户重定向到临时服务器。在两个完全不同的后端之间执行A/B测试。构建完全依赖于webapi的"无服务器"应用程序。创建自定义安全筛选器以阻止应用程序特有的不需要的流量。重写请求以提高缓存命中率。实现自定义负载平衡和故障转移逻辑。对应用程序应用快速修复,而不必更新生产服务器。收集分析而不在用户浏览器中运行代码。更多。这里有一个例子。//工人://1。将访问者重定向到主页("/")到//特定于国家/地区的页面(例如"/US/")。//2。阻止热链接。//3。直接从谷歌云存储提供图片。addEventListener('fetch',事件=>{事件响应(手柄(事件请求))})异步函数句柄(请求){let url=新url(请求.url)如果(url.路径名== "/") {//这是对主页("/")的请求。//重定向到特定于国家/地区的路径。//例如,在美国的用户将被发送到"/US/"。让国家=请求.headers.get("CF IP国家")url.路径名="/"+国家+"/"返回响应.重定向(网址,302)}否则如果(url.pathname.startsWith("/images/"){//这是对图像的请求(在"/images"下)。//首先,阻止第三方推荐者以阻止//热链接。让referer=请求.headers.get("推荐人")如果(参考&&新的URL(referer)。主机名!= url.主机名) {返回新响应("不允许热链接。",{状态:403})}//已通过热链接检查。直接服务形象//从谷歌云存储,节省服务//成本。图像将缓存在Cloudflare的//根据其缓存控制标头进行边缘处理。url.主机名="示例-桶。仓库。谷歌皮斯.com网站"return fetch(url,请求)}其他{//常规请求。转发到源服务器。回迁(请求)}}真的很快有时人们会问我们JavaScript是否"慢"。没有比这更离谱的了。工人们使用Google为Chrome构建的v8javascript引擎。V8不仅是JavaScript最快的实现之一,也是任何动态类型语言period中最快的实现之一。由于大量的工作已经进入优化V8,它优于任何流行的服务器编程语言与可能的例外的C/C++,RIST,和GO。(顺便说一句,我们很快将通过WebAssembly支持这些功能。)底线:一个典型的Worker脚本在不到一毫秒的时间内执行。大多数用户在启用worker时无法测量任何延迟差异,当然,除非他们的worker通过直接从边缘响应来改善延迟。另一个与速度有关的问题是,工人的部署速度也很快。在保存并启用脚本后,Workers将在30秒内全局部署。定价Workers是Cloudflare的付费附加组件。我们希望定价尽可能简单,所以交易如下:开始吧登录您的Cloudflare帐户并访问"Workers"部分以配置Workers。在操场上与工人进行实验,不需要任何帐户。阅读文档以了解如何编写工人。查看最初的公告博客文章了解更多技术细节。讨论Cloudflare社区的员工。"Cloudflare工人为我们节省了大量时间。在没有工人的情况下管理bot流量将消耗宝贵的开发和服务器资源,而这些资源最好用在其他地方。"-John Thompson,MaxMind高级系统管理员