首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

总结Web应用中常用的各种Cache

文章以Nginx,Rails,Mysql,Redis作为例子,换成其他web服务器,语言,数据库,缓存服务都是类似的。 以下是3层的示意图,方便后续引用: ?...动态请求静态文件化 在rails请求完成以后,将结果保存成静态文件,后续请求就会直接由nginx提供静态文件内容,用after_filter来实现一下: class CategoriesController...,处理这种生成静态文件缓存可以用内置的caches_page, rails 4之后变成了一个独立gem actionpack-page_caching,和手工代码对比一下, class CategoriesController...数据查询缓存 通常来说web应用性能瓶颈都出现在DB IO上,做好数据查询缓存,减少数据库的查询次数,可以极大提高整体响应时间。 数据查询缓存分2种: A....rails内置了query cache (https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters

4.7K40

使用 Mastodon 搭建个人信息平台:调优篇

p.img_src :self, :https, :data, :blob, assets_host 我们在上面的规则中添加静态资源服务器地址即可: p.img_src...将补丁打在依赖库上 先来聊聊副作用最小的方式,将补丁打在依赖库上,仅在输出 S3 资源的时候调整资源使用的协议。...经过简单的调用追踪,可以看到负责输出 S3 静态资源的逻辑在 https://github.com/thoughtbot/paperclip/blob/main/lib/paperclip/storage...参考前文中剥离 Mastodon 静态资源和主应用的容器,将打补丁后的程序进行重新编译,然后更新资源镜像: FROM tootsuite/mastodon:v3.4.4 AS Builder ENV RAILS_ENV...并且因为我们已经用 Nginx 剥离了静态资源,所以还可以设置不使用 Puma 来提供静态资源服务。 web: ...

2.4K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Astro 开启网站性能与开发效率的双重提升之旅

    电子商务网站 借助其强大的静态渲染能力、UI框架集成和多种数据源支持,Astro非常适合构建电商网站,可获得出色的性能和开发体验。 营销页面和登陆页面 快速构建营销着陆页是Astro的一大亮点。...开发者在使用 Astro 的同时,仍然可以继续使用他们最喜欢的 UI 组件和框架,并且从中得到受益。 岛屿始终独立于页面上的其他岛屿运行,且一个页面上可以存在多个岛屿。...尽管岛屿在不同的组件上下文中运行,它们仍然可以共享状态并相互通信。这种灵活性使得 Astro 能够支持多个 UI 框架,如 React、Preact、Svelte、Vue 和 SolidJS。...Astro 从它最初作为静态网站生成器的开始就专注于内容,使得 Astro 可以合理地扩展到性能强大的动态 Web 应用程序,同时仍然尊重你的内容和你的受众。...Astro 的设计比其他 UI 框架和语言更简单。其中一个重要原因是在服务器上渲染,不是在浏览器中。

    11710

    Gitlab环境搭建小计

    我的安装环境是 CentOS 7.0 x86_64 目测Gitlab包会把自己安装在 /opt/gitlab 下,然后/usr/bin/gitlab-*的几个文件软链接到/opt/gitlab/bin...比如我一开始就有端口和unicorn的默认端口(8080)冲突 接下来要改默认配置,然后坑就来了: 首先是生成的/var/opt/gitlab里面的路径不能是软链接,我把git仓库保存路径软链接后发现push...要改内置nginx的默认端口号的话,直接external_url配置后面加就行了,不过后果就是web页面里的http/https地址的端口号就也变了 [追加建议] - 最好把各个系统的超时时间设长一点...,不然项目比较大的时候创建Merge Request比较慢,比较容易超时 不能软链接这回事非常头大,开来只能用mount了,不过我没试过。...记一下我这里的配置: # @see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md # # Change the external_url

    1.2K10

    Strikingly 团队2017技术展望

    Rails 的惯例大多是 Web 开发领域多年总结下来的最佳实践,即使是新手,也能够在短时间内开发出安全,健壮的 Web 应用,这个对于初创企业来说是非常有帮助的。...要解决这问题,我们需要重新审视 Rails 在 Web 应用开发中的定位。Rails 只是一个 Web 框架,它不是一个应用开发框架,不能也不应该负责 Web 应用中领域相关的部分。...关于这一部分的详细内容可以参考我们团队的资深 Rails 工程师 Florian Dutey 在 RubyConf Taiwan 2016 上的演讲 “Large scale Rails applications...在确定微服务架构的演进方向之前,我们已经做了一些分布式计算的尝试,即将一部分相对独立的模块拆分出来作为独立的服务存在。...在此之前,我们在单元测试和集成测试上已经下了很大工夫了,2016 年重点解决的问题是搭建功能回归和 UI 回归测试。

    2.1K00

    Web Hacking 101 中文版 九、应用逻辑漏洞(一)

    虽然 HTML 注入、HTML 参数污染和 XSS 都涉及到提交一些类型的潜在恶意输入,应用落地及漏洞实际上涉及到操纵场景和利用 Web APP 代码中的 Bug。...如果你不熟悉 Rails,他是一个非常流行的 Web 框架,在开发 Web 站点时,它可以处理很多繁杂的东西。...Rails 核心开发者的想法是,使用 Rails 的 Web 开发者应该负责填补它们的安全间隙,并定义那个值能够由用户提交来更新记录。.../100938 报告日期:2015.11.22 奖金:$500 描述: Shopify 是一个巨大并健壮的平台,它包含 Web UI 以及受支持的 API。...这个例子中,API 不验证一些权限,而 Web UI 明显会这么做。因此,商店的管理员,它们不被允许接受邮件提醒,可以通过操作 API 终端来绕过这个安全设置,在它们的 Apple 设备中收到提醒。

    4.5K20

    微服务设计模式 - 1. 单体应用模式

    考虑因素 这是一个团队开发的项目,有一个独立团队负责 团队成员会发生变化,新加入的成员必须快速上手项目 应用程序必须易于理解并修改 期望能实现应用的持续集成与部署 必须可以多实例部署应用程序,以满足可伸缩性和可用性要求...这个应用被设计成一个单体架构应用,例如:JavaWeb 应用程序由运行在Web容器(如 Tomcat )上的单个 WAR 文件组成。...Rails 应用程序由部署在 Nginx 或 Tomcat 上的 JRuby 或 Nginx 上的单一目录层次结构组成。可以在负载均衡器后面部署多个实例,以扩展和提高可用性。 ?...扩容简单,通过在负载均衡器后面部署多个实例就能实现扩容。...例如,我们可能希望有UI团队、会计团队、库存团队等等。单块应用程序的问题在于它阻止了团队独立工作。小组必须协调他们的开发工作和重新部署。对于一个团队来说,进行更改和更新生产要困难得多。

    81330

    独立开发者都在使用哪些技术栈?

    1、编程语言 JavaScript/TypeScript:这是前端开发中必不可少的语言,独立开发者通常使用React、Vue或Angular等框架来构建现代化的Web应用。...Python还常用作独立开发者的全栈解决方案中的一部分,比如结合Django或Flask来构建Web服务。...Ruby on Rails:尽管近年来流行度有所下降,但对于独立开发者来说,RoR仍是快速开发Web应用的理想选择。它有很多开箱即用的功能,适合MVP(最小可行产品)开发。...API服务:很多独立开发者会使用Stripe处理支付,Firebase实现用户身份验证和数据存储,或SendGrid发送邮件,这些服务帮助开发者将精力集中在核心业务逻辑上,而不是构建基础设施。...Flutter:由Google开发的跨平台框架,使用Dart语言编写,近年来也逐渐受到独立开发者的青睐,特别是其快速的UI构建能力和性能优化。

    11620

    新型web框架Astro快速构建内容网站

    利用Astro独特的零js前端架构,以更好的SEO解锁更高的转化率。 特性 组件群岛: 用于构建更快网站的新 web 架构。...这与传统服务器端框架(PHP、WordPress、Laravel、Ruby on Rails等)使用的方法相同,您不需要学习第二种服务端语言。...路由 Astro 的路由基于文件,它根据项目的 src/pages 目录中的文件结构来生成你的构建链接。当一个文件被添加到 src/pages 目录中,它将自动基于文件名生成与之对应的路由。...静态路由 src/pages 目录下的 Astro 组件和 Markdown 文件就是你的路由 # 示例:静态路由 src/pages/index.astro -> mysite.com/...Astro 是集多功能于一体的 Web 框架,用于构建快速、以内容为中心的网站。 ## 主要特性 - **组件群岛: **用于构建更快网站的新 web 架构。

    3.2K40

    互联网架构中的9种隔离术以及容器化的实现

    例如:服装的图片是静态的,而附件界面是动态的。为了保证性能,电商通常将动态内容与静态资源分离,而一般静态资源放在CDN上。 ?...对于这种系统,应该造成独立的系统进行隔离,底层使用配置较高的硬件服务器、更好的网络带宽,并且加入多级缓存。...从最外端的Web UI开始,这是一个用node.js写的微服务。用于对外提供访问,接受用户的请求。...Web UI - 在Node.js容器中运行的基于AngularJS和PatternFly的前端。也就是客户访问电商的界面展示。...热点隔离:电商里,web-ui、评论等容易出现热点的微服务,可以通过打标签的方式,部署到配置高的服务器上。

    3.8K41

    rails, django, phoenix,你们错了

    在 django / phoenix 上能看得出 rails 的很多影子。rails 在 flickr / delicious 时代是工程师追捧的明星框架。...然而它并不能避免横向的耦合,比如 model 和 model 的耦合,controller 和多个 model 的耦合。而 web framework 却有意无意地在倡导这种耦合。...然而,业务层被这样揉进了一个 web framework 中,是不是哪里不太对劲? rails 们代表的 web 层并不是业务的全部。如果哪天我们要向第三方提供 API 呢?...说句不太好听的话,rails 等 framework 很容易引导人们走向一个 web 前端为中心的歧路。这里所说的「前端」,是指后端的前端。...我们可能需要一个面向用户的前端,可能还要面向管理员的前端,每个独立的服务可能也需要它们各自的管理前端,我们还要有统计分析的前端,用户行为分析的前端等等。

    1.8K70

    微服务模式系列之一:整体式架构

    单个Rails或者NodeJS代码目录层级。 举例 假设需要构建一款电子商务应用程序,使其能够接收来自客户的订单、验证库存信息与可用信用额度,而后进行发货。...例如:一个Java Web应用仅包含一个运行在Tomcat之类的Web容器上WAR文件。...一个Rails应用由单一目录层级构成,该目录层级的部署通过在Apache/Nginx上使用Phusion Passenger,或者在Tomcat上使用JRuby得以实现。...过载的Web容器——应用越大,Web容器启动时间越长。容器启动耗费时间,极大影响到开发者的生产效率。对部署工作也有负面影响。 持续部署困难——巨大的单体应用本身就是频繁部署的一大障碍。...应用一旦达到特定规模,需要将现有组织拆分成多个团队,每个团队负责不同的功能模块。举例来说,我们可能需要设立UI团队、会计团队、库存团队等等。单体应用的问题在于它使团队无法独立展开工作。

    87891

    数字藏品NFT的开发框架

    数字藏品NFT(非同质化代币)的开发框架涉及区块链技术、智能合约、存储解决方案、用户交互等多个方面。以下是一个完整的数字藏品NFT开发框架,涵盖从技术选型到部署上线的关键步骤。1....存储解决方案链上存储:存储NFT的元数据(如名称、描述、图片链接)。使用IPFS(InterPlanetary File System)或Arweave存储不可变的数据。...前端开发用户界面(UI):设计直观的界面,支持NFT的展示、购买和交易。使用React.js或Vue.js构建响应式网页。...技术选型:Node.js、Python(Django/Flask)、Ruby on Rails。数据库:MongoDB、PostgreSQL。7. 测试与部署测试:单元测试:测试智能合约的各个功能。...部署前端应用到Web服务器(如Netlify、Vercel)。配置CDN加速静态资源加载。8. 市场与交易平台集成现有市场:将NFT上架到OpenSea、Rarible等平台。

    10110

    QA应该更新的测试工具

    在这个 Web 系统爆炸的年代,Web UI 界面布局测试,多浏览器测试,CSS 的 refactor 等都成为了 Web UI 测试的痛中之痛,特别是大型 Web 应用的功能回归测试量太大,从而导致很多时候根本无法完成...不过他们的思路和以前不一样,不是想做一个全自动的 UI 测试框架,而是基于 Agile 的持续集成和持续部署的概念上,使用半自动的方法来减少 UI 回归测试的时间,从而减少 WEB 应用程序 UI 回归测试的时间...对于全部是静态页面的 Web 系统来说非常适用,不过对于需要手动导航,比如需要进行输入,点击等之后才能进行比较的页面,它现在的版本并不适合。...如果你们使用的是 Ruby On Rails 开发的 Web 系统,或者你想尝试一种新的快速的开发方式,你还有一个选择就是 Watir[4]。...Watir 是一个使用 Ruby 开发的测试 API,和 WebDriver API 类似,而且它自带和 Rails 集成的组件,所以对于 Rails 的 Web 系统它有天生的优势。

    1.7K41

    后台管理UI的选择

    官网:http://jui.org/ 下载:https://github.com/dwzteam/ 三、HUI H-ui前端框架是在bootstrap的思想基础上基于 HTML、CSS、JAVASCRIPT...开发的轻量级web前端框架,开源免费,简单灵活,兼容性好,满足大多数中国网站。...700多个网页模版,1500多个UI小组件,100多个表单,80多个jQuery插件。 提供说明文档。..., ASP.NET MVC5/MVC6, Meteor and Ruby on Rails version 插件很多,但都按引用分文件夹存放了,静态版本中我看了就是48个插件,有PSD源文件,提供的文件包含...该UI也是国人的作品,开源、免费、至今有100多个版本了,个人感觉界面不算难看,控件多,帮助说明也有不少;但只是为ASP.NET量身定做的,有一定的局限性;重,非常重,ExtJS+ASP.NET的页面状态就更加重了

    5.1K21

    《Prometheus监控实战》第9章 日志监控

    ,或者还可能存在监控上的技术限制。...当无法读取文件时,你将在使用--logtostderr参数获得的mtail日志输出中看到读取错误 它将在端口3903上启动Web服务器(可以使用--address和--port参数来设置IP地址和端口)...我们还可以执行更复杂的操作,例如构建直方图 ---- 9.4 解析Rails日志到直方图 代码清单:rails程序(https://github.com/google/mtail/blob/master...这种模式通常被称为边车(sidecar)模式,非常适合容器化应用 也可以在一个mtail实例中运行多个程序,但有一点需要注意,mtail会在传递给它的每个日志文件上运行每个程序,这可能会对主机产生性能影响...,一个Web服务器和一个Rails服务器,两个目标都在端口3903上被抓取 代码清单:工作文件发现 [{ "targets": [ "web:3903", "rails:3903"

    12.9K43
    领券