问题标签 [varnish]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
varnish - 如何使用 supervisord 配置 ulimit(启动 varnish)
我正在将服务器配置迁移到 supervisord(来自 init.d 文件)。
有几个 varish 运行的实例。我记得当我开始使用 varnish 时,我遇到了 ulimit 问题,所以 init.d/varnish 脚本中有以下几行
ulimit -n ${NFILES:-131072} ulimit -l ${MEMLOCK:-82000}
我正在配置 supervisord 以使用参数运行 /usr/sbin/varnishd 程序。
你如何通过 supervisord 配置 ulimit 设置?我只是将 varnishd 程序包装在脚本中吗?
varnish - 在 varnish 上,我如何查看向每个服务器发送了多少请求?
我想看看清漆通过循环导向器向每个后端发送了多少请求。到目前为止我还没有发现。谢谢你的任何想法
http - HTTP 中介的请求处理模型
有谁知道常见的 HTTP 中介(缓存)的概述或比较表,例如 Squid、Varnish、TrafficServer,......?
我特别在寻找有关他们的请求处理方法(同步与异步、多进程、多线程等)的信息。
(我正在调查关于 ESI 的选项。我的 ESI 方法可能涉及在请求处理期间执行大量逻辑)
简
list - 在 VCL(Varnish 配置语言)中定义列表
有没有办法用 Varnish VCL 语言定义域列表?我想 ACL 也有类似的东西。我想做这样的事情(以 ACL 为例)。
我可以只使用单独的 RegEx 测试,但如果我想在 VCL 的其他地方使用这些域,它就不是很可重用。
谢谢!
varnish - 使用清漆禁用对某些 IP 的缓存
是否可以让具有特定 IP 的客户端通过后端而不使用清漆进行缓存?我在任何示例配置中都没有看到这一点。
php - 清漆缓存和购物车
我最近一直在研究 Varnish 并进行了一些繁重的 Google 搜索。我们最近在运行电子商务网站的服务器上设置了这个以迎接圣诞节。在接下来的几周内,我们将增加回访次数,因此使用 Varnish 似乎是个好主意。
我想知道是否有人可以为我澄清一些事情 - 在使用 Varnish 时,如果用户第一次到达它会检测到新的 cookie(因为会话用于购物车)并缓存他们访问的页面。
但是,如果我们想要缓存的不仅仅是客户的重复访问,我在一个单独的 stackoverflow 线程上看到,使用以下内容编辑 .vcl 将有助于它缓存页面,即使使用了 session_start :
我的问题是 - 我对 - 什么 - 将被缓存的细节有点困惑。这是否也会缓存某人的购物车,从而将其提供给该产品页面的所有访问者?
抱歉,如果我在这里遗漏了 Varnish 的基本要点;最坏的情况下,这将有助于减轻回访的负担,但缓存更多的网站会更好!
首先十分感谢
caching - 缓存 404 - NGINX 还是清漆?
我正在寻找一种在网络服务器上长期(几天/几周)缓存 404 的解决方案。我当前的设置是 NGINX,带有 memcached_pass 代理和 PHP-FPM 来提供未缓存的页面(PHP 也将内容写入 memcached)。网络上的爬虫似乎很喜欢我的页面,每天会产生几千个 404 请求。所有这些都直接命中 PHP,因为我无法将 404 响应标头信息与 memcached 中的内容一起缓存,因此 memcached_pass 查找总是失败。
如何缓存所有返回 404 的请求?Nginx 的 HTTPProxModule 是我正在寻找的吗?还是我应该选择清漆?
从我目前的角度来看,我并不热衷于更改我的整个设置并从 nginx 中删除 memcached_pass 指令。到目前为止它非常简洁,因为 php 决定是否可以(应该)将请求缓存在 memcached 中。必要时刷新缓存也很容易。
我当前的 NGINX 配置文件:
Nginx 或 Varnish 的示例配置会很棒。
谢谢!:)
varnish - 清漆 ESI 以获取大量信息
我有一个标准的博客类型应用程序,其中包含可以将这些帖子添加到他们的收藏夹的帖子和用户。
目标
- 当用户查看帖子列表时,他们应该看到每个帖子是否是收藏夹的指示(图像)。匿名用户没有任何收藏夹。
- 帖子列表需要缓存在 Varnish 中(对于匿名用户和登录用户),因为计算成本很高。
想法
在 Varnish 中缓存列表页面并使用 ESI 获取收藏夹信息...
- ...对于发出当前请求的用户的每个帖子。缺点:每页 50 个 ESI 请求(基本上是N+1 问题)。
- ... 作为 JSON 对象,然后存储在页面上。在客户端,读取此对象并操作 DOM 以指示收藏夹信息。缺点:不适用于没有 Javascript 的用户。
- ...作为存储在页面中的 CSS 片段。CSS 确定每个帖子要显示的内容。缺点:仅适用于可样式化的内容(即图像)。无法显示文本信息。
我是否错过了实现我想要的任何可能性?想法 3 似乎是最聪明的答案,但如果我还想显示用户收藏帖子的日期,它就行不通了。
php - 图片分享功能
我正在为我的 Web 应用程序 (PHP) 创建用户之间共享图像的功能,这意味着所有用户都可以将他们的图像上传到我的服务器。所以,我的第一个假设是我的“图像共享”功能需要一个专用服务器。问题是如果服务器会收到很多请求 - 就会产生瓶颈。
我了解了缓存(memcached、varnish、squid...),您认为其中一种技术适合我吗?
对我来说最好/理想的架构是什么?我认为在某些时候只有一台服务器是不够的。所以我想我需要服务器集群(主服务器和从服务器)。对?
如果您能给我一些关于正确技术和架构的指导,我将非常高兴。
caching - 仅为 PHP 应用程序缓存图像
我在我的 Web 应用程序 (PHP) 中获得了上传和共享图像的功能。我需要知道什么是仅缓存图像的最佳缓存技术。
阅读将比写作更多。
那么您认为最适合我需求的技术是什么?
它是清漆、memcached 还是其他?