gpt4 book ai didi

Magento & Varnish/松节油,零命中率

转载 作者:行者123 更新时间:2023-12-03 17:45:06 28 4
gpt4 key购买 nike

我们在 Ubuntu 12.04lts 上运行的 (nginx)、magento(1.9.0.1)、turpentine 和 varnish(3.0.2) 存在一些奇怪的问题。 我们对 Varnish/松节油没有经验,所以这可能是一件基本的事情。

我们成功拿到了松节油vcl 应用于正在运行的 varnish 实例 ,并使用 varnishadm vcl.list 检查结果.我们还在松节油中启用了调试信息。

奇怪的东西:

如果我们在 magento backend->cache 中激活两个 turpentine 缓存方法,尤其是 fpc,我们得到以下响应

Server  nginx
Transfer-Encoding chunked
Via 1.1 varnish
X-Frame-Options SAMEORIGIN
X-Powered-By PHP/5.3.10-1ubuntu3.15
X-Turpentine-Cache 0
X-Turpentine-Esi 1
X-Varnish 293774805
X-Varnish-Hits 0

真正糟糕的响应时间为 3.5 秒 因为您可以在 X-Turpentine-Cache 和 X-Varnish-Hits 中清楚地看到页面似乎永远不会被缓存。标题中也没有设置年龄。

但是,如果我们停用松节油 fpc,同时让 vcl 保持不变,我们会得到
Age 29
Server nginx
Via 1.1 varnish
X-Frame-Options SAMEORIGIN
X-Powered-By PHP/5.3.10-1ubuntu3.15
X-Varnish 293775151 293775096
X-Varnish-Hits 2

再加上约 100 毫秒的优化响应时间,这似乎很受欢迎。

我们错过了以正确方式设置松节油/Varnish 的哪一点,是什么导致激活的松节油缓存的命中率为零?

提前致谢...

最佳答案

以下是一些故障排除步骤:

让 Varnish 独立工作:

您的 varnishd应该使用几个参数运行,这是我的 Ubuntu 服务器安装 (/etc/defaults/varnish) 中的示例:

  • -a :6081公共(public)端口——这是网络浏览器将使用的端口
  • -T localhost:6082管理端口——用于配置 Varnish
  • -f /etc/varnish/default.vcl初始 VCL 配置文件(见下文) -- varnish 首次启动时使用的配置
  • -s malloc,256m存储后端——在本例中为 256MB 内存后端
  • -S /etc/varnish/secret varnish 管理员密码文件的路径

  • 松节油的 documentation还提到可能需要这些参数:
  • -p esi_syntax=0x2
  • -p cli_buffer=16384

  • 这是我的样本 default.vcl ,这是一个准系统配置,它告诉 Varnish 将请求代理到 127.0.0.1:80,并且只会在 Turpentine 重新配置 Varnish 之前使用:
    backend default {
    .host = "127.0.0.1";
    .port = "80";
    }

    您可以通过检查正在运行的进程来验证这些设置是否正在使用: ps aux |grep varnishd
    测试你的 Varnish 配置

    使用上述参数运行 varnishd,您应该能够远程登录到您的管理端口(上面的 -T):
    telnet localhost 6082

    如果您提供了 -S上面会提示你授权;使用您的 secret 文件的内容。如果您无法通过 telnet 进入,请尝试删除 -S禁用身份验证的参数(稍后您需要重新启用它)。登录后,您将进入 varnish 控制台;保持这个开放。

    设置松节油

    我假设您已经在 Magento 中成功安装了 Turpentine。转至 System -> Configuration并查看这些设置:
  • Varnish 选项
  • Varnish 版本:如果您不知道您正在使用的具体版本,请设置为“自动”
  • 服务器列表:这应该与 -T 完全匹配varnishd 的参数-- localhost:6082在上面的例子中
  • Varnish 验证 key :这应该是用于 -S 的 key 如果您禁用了身份验证,则为空
  • 缓存选项
  • 后端主机:localhost如果 Magento 和 Varnish 在同一台服务器上,否则 Magento 主机
  • 后端端口:Magento 的 HTTP 端口(通常为 80)

  • 保存这些配置时,您应该会看到成功或错误消息。此消息表明 Turpentine 能够生成新的 VCL 配置文件并使其在 Varnish 中处于事件状态。要确认这一点,请使用您的 telnet session 运行 vcl.list .您应该会看到如下内容:
    vcl.list
    200 106
    available 4 boot
    active 2 ef1a15f2132a599ed26520c94c599e71aa7f5e576afcfca211e6249dcd640ddd
    bootdefault.vcl多于;第二个 VCL 是 Turpentine 生成的并已切换为事件状态。
  • 使用System -> Cache Management启用两个 Varnish Magento 缓存;刷新所有缓存并注销管理面板以确保一切生效。

  • 此时松节油应该启动并运行。您可以运行 varnishstats并使用 -a 加载您的网页来自 varnishd 的端口.多次重新加载页面应该会导致点击率高于零。

    请记住,使用此配置,如果 varnishd,您的 Turpentine VCL 将丢失。重新启动(连同缓存的内容)。您可以使用 Cache Management magento 页面导出新的 .acl 文件以用于 -f参数,以便在 varnish 重新启动时生效。

    关于Magento & Varnish/松节油,零命中率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908397/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com