标签: cache

wp nginx fastcgi 缓存 vs wp 超级缓存

我有一个 512mb 的单核服务器实例。截至目前,我有大约 3 个网站,大约有 10k 篇文章,在所有网站上我都启用了 wp 超级缓存。典型的缓存时间为 3600 秒或 7200 秒。而且 vps 实例保持得很好。它每天只会出现一次约 60% 的 cpu 峰值。

我读到,一旦一个网站达到 30k 篇文章,由于文件数量(Linux 文件系统)或类似的原因,依赖 wp 超级缓存并不是一个好的做法。

所以我想也许我应该改用 nginx fastcgi 缓存。在他们的网站中,与 wp super cache 或 w3 Total Cache 相比,他们推荐将此作为最佳实践。

考虑到内存的数量,我有可用的。你们认为 fastcgi 缓存会是我网站的更好替代方案吗?

内存缓存呢?

我的 php 7.1 启用了 opcache。

nginx cache fastcgi wordpress

5
推荐指数
1
解决办法
2146
查看次数

在 nginx 中使用带有随机数的 CSP 时的客户端缓存 - 如何使用弱缓存验证器/etag?

我正在使用nginx 的expires指令;它的etag指令以及Last-Modified标题(如果我理解正确的话)默认情况下处于打开状态。

为了在使用限制性内容安全策略(CSP)标头(即无'unsafe-inline'资源策略)时允许特定的内联 JavaScript,我想使用随机数。

我基本上遵循了Scott Helme 关于此事的文章,在我的试验中使用 nginx$request_id来创建nonce ServerFault 上讨论的内容(以便快速尝试,而不必从头开始构建 nginx)。

然而,当我尝试此操作时,缓存似乎不再按我的预期工作:
Nginx 每次都以文件、新鲜Last-Modified和ETag标头进行响应,而不是304 Not Modified我希望的响应。

仔细想想,这是有道理的:nonceCSP 标头以及源代码中的 都会随着每个请求而变化。然而,其他一切都没有改变。因此,可以说,这是“弱验证器”应该忽略的更改(从而将请求的资源标记为未更改)。

话虽如此,我对服务器配置或缓存标头知之甚少,甚至一无所知。很可能我所掌握的少量知识没有帮助,而且弱验证器无论如何也不应该以这种方式工作。

此外,似乎存在一个问题,即当浏览器拥有旧文件的缓存版本nonce但获得304 Not Modified新文件的标头时,浏览器会感到困惑nonce(尽管我自己在试用中没有看到这一点)。

因此,我的问题基本上是:是否可以配置nginx,以便缓存以某种方式工作,当nginx创建和标头(即它只看起来的地方)时,对唯一的更改(即通过文本替换动态发生的更改)nonce被忽略Last-ModifiedETag在磁盘上的文件更改时) - 有效地使用什么可能是弱验证器?

并且,假设浏览器混乱是一个问题,您是否可以采取一些措施来阻止它,例如当服务器返回 304 时不返回 CSP …

nginx cache etags content-security-policy http-caching

5
推荐指数
0
解决办法
965
查看次数

从 yum 缓存中清除所有包的安全方法?

我知道这yum clean all并不一定会清除所有包文件。我从“也许你想要: rm -rf /var/cache/yum ”中知道我可能不得不这样做,天哪,直率地清除所有/var/cache/yum. 但我刚刚发现我绝对不想清除所有的/var/cache/yum,因为显然安装了哪些软件包的记录也保存在某个地方。如果没有某些文件/var/cache/yum,rpm -qa似乎什么也打印不出来。

那么是否有一个简单的规则/var/cache/yum可以手动删除下面的其他文件,通过删除不需要的(或可以轻松重新下载的)包文件来节省空间,但保留系统的安装状态?

我的一个或多个假设可能完全错误。如果有欢迎指正。

更新:我在这里跳过一些细节,但是将所有内容从拥有它的系统复制到没有修复的/var/cache/yum系统(它仍然没有打印任何内容),所以看起来我的假设之一是有缺陷的,并且系统的安装状态保存在除.rpm -qa/var/var/cache/yum

更新2:我的一个假设是错误的。正如我最终发现的那样,正如 @shodanshok 在答案中指出的那样,当前安装的软件包的数据库位于/var/lib/rpm,而不是 /var/cache/yum。所以清除所有/var/cache/yum应该是安全的。

redhat cache yum rhel7

5
推荐指数
1
解决办法
8366
查看次数

监控页面缓存使用情况有哪些选项?

从本质上讲,页面缓存是虚拟文件系统 (VFS) 的一部分,您可以猜到,其主要目的是改善读写操作的 IO 延迟。

在计算中,页面缓存(有时也称为磁盘缓存)是源自辅助存储设备(例如硬盘驱动器 (HDD) 或固态驱动器 (SSD))的页面的透明缓存。

操作系统将页面缓存保留在主内存 (RAM) 的其他未使用部分中,从而可以更快地访问缓存页面的内容并提高整体性能。

基于以上所述,现有的用于监控页面缓存的工具有哪些?我希望监控使用情况、点击率,尤其是脏页。

操作系统版本为RHEL 7.X。

linux memory redhat cache kernel

5
推荐指数
1
解决办法
1944
查看次数

如何使用 targetcli 禁用 iSCSI 写入缓存

我已将单个磁盘导出为targetcliLinux 主机上使用的 iSCSI 目标。在远程计算机上,我已连接到该设备,并在其上放置了一个 ZFS 卷(作为带有 的复制目标zrepl)。

但是,每当我重新启动 iSCSI 目标计算机时,运行 ZFS 的启动器计算机就会失败并出现写入错误。经过一些研究后,这种类型的故障仅在 ZFS 向设备发送写入时发生,它被告知写入成功完成,但随后写入丢失。

这意味着 iSCSI 目标必须缓存写入并在实际写入磁盘之前返回成功,并且当计算机重新启动时,这些缓存的写入并不总是会被刷新。

有没有办法targetcli禁用此写入缓存,以便写入在实际写入物理磁盘之前不会成功返回?

我尝试将物理磁盘导出为pscsi后备存储,但这只会导致 iSCSI 目标内核在访问磁盘后立即崩溃。(没有使用虚拟机,只有两个本机 Linux 服务器,因此不应使用不常见的 SCSI 命令。)

/> ls
o- / .............................................................................................. [...]
  o- backstores ................................................................................... [...]
  | o- block ....................................................................... [Storage Objects: 1]
  | | o- ar0 .......... [/dev/disk/by-id/ata-ST22000NT001-3LS101_ZX20XTYG (20.0TiB) write-thru activated]
  | |   o- alua ........................................................................ [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ............................................ [ALUA state: Active/optimized]
  | o- fileio ...................................................................... [Storage …
Run Code Online (Sandbox Code Playgroud)

linux zfs iscsi cache open-iscsi

5
推荐指数
1
解决办法
363
查看次数

扩展大文件下载?

我们目前通过单个 Apache 服务器提供大型 (1GB+) 文件,但我们的 Apache 服务器非常受磁盘 IO 限制,我们需要扩展。

我的第一个想法是简单地复制这个 Apache 服务器,但是我们的文件库太大了,不能简单地将 Apache 服务器水平扩展 N 倍。

所以我的下一个想法是在后端有两个 Apache(高可用),每个都有我们整个库的单独副本......然后在前面有“N”个反向代理,其中“N”随着我们的交付需求的增长而增长。每个反向代理都占用大量 RAM,并且每 GB 具有尽可能多的心轴。后端 Apache 服务器更“存档”,并且主轴与 GB 之间的比率较低。

这是一个好的架构吗?有没有更好的处理方法?

nginx cache squid varnish apache-2.2

4
推荐指数
1
解决办法
3777
查看次数

SSD 作为 Linux 交换用于大型虚拟内存应用程序?

这个问题主要涉及这一点,但在 64 位 Linux 上运行,我有一组数据缓存 JVM 以及想要一个大型 Web 缓存。今天的每个缓存都配置为完全适合系统内存 (24GB) 并在 LRU 中持久保存到磁盘。

但是,我很好奇如果我们**过度**分配缓存进程并为高优先级 Linux 交换设置 SSD 时的性能。我想知道 Linux 内核是否可能比我们简单的 LRU 进程更智能/更快?

我担心过度分配 JVM 堆并让内核交换堆页面作为 GC,它必须定期遍历所述页面。

linux ssd cache swap

4
推荐指数
1
解决办法
1476
查看次数

忽略 Varnish VCL 中的 GET 参数

好的:我已经建立了一个站点,其中包含一些我们向开发人员公开的 API,它们采用以下格式

/api/item.xml?type_ids=34,35,37&region_ids=1000002,1000003&key=SOMERANDOMALPHANUM
Run Code Online (Sandbox Code Playgroud)

在这个 URI 中,type_ids 总是被设置,region_ids 和 key 是可选的。

需要注意的重要一点是,关键变量不会影响响应的内容。它用于请求的内部跟踪,因此我们可以识别发出缓慢或其他不需要的请求的人。

在 Varnish 中,我们有一个像这样的 VCL:

if (req.http.host ~ "the-site-in-question.com") {
  if (req.url ~ "^/api/.+\.xml") {
    unset req.http.cookie;
  }
}
Run Code Online (Sandbox Code Playgroud)

我们只是去除 cookie 并让后端完成其余的工作(就时间而言,这是一种 hackaround,因为 Rails/authlogic 发送带有 API 响应的会话 cookie)。

但目前,任何不同的开发人员基本上都在访问不同的缓存,因为它们&key=SOMEALPHANUM被视为 Varnish 哈希存储的一部分。这显然不是一个很好的解决方案,我正在尝试找出如何告诉 Varnish 忽略 URI 的那部分。

http nginx cache varnish ruby-on-rails

4
推荐指数
1
解决办法
7976
查看次数

浏览器缓存的最大文件大小是多少?

浏览器缓存的最大文件大小是多少?请注意,我不是指浏览器缓存的最大大小。我的意思是,将被缓存的最大单个文件是多少。

如果有限制,在哪里记录?

http cache

4
推荐指数
1
解决办法
5479
查看次数

Chrome 缓存 302 重定向

我有一个 php 脚本,用于在网站上旋转横幅图像。

在 Firefox/IE 下,页面刷新将发出另一个请求并返回不同的图像。

在 Chrome 下,请求似乎被缓存,只有在新选项卡中打开页面才会导致它实际查询脚本。

我相信这曾经适用于旧版本的 chrome,我尝试了几种不同类型的重定向代码,结果都相同。

有小费吗?

<img class="banner" src="/inc/banner.php" alt="">

~$ cat /var/www/inc/banner.php 
<?php

header("HTTP/1.1 302 Redirect");
header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate");

//header('HTTP/1.1 307 Temporary Redirect');
//header("expires: none");
//header("expires: max");
//header("Cache-Control: public");

$folder = '../img/banner/';

$exts = 'jpg jpeg png gif';

$files = array(); $i = -1;
if ('' == $folder) $folder = './';

$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // …
Run Code Online (Sandbox Code Playgroud)

php cache google-chrome redirect banner

4
推荐指数
1
解决办法
7465
查看次数