标签: varnish

自省清漆的工具

有没有人开发或知道任何第三方工具(或常用工具的非明显用途)来帮助糟糕的系统管理员确定通过 Varnish 的请求发生了什么?虽然varnishstat, varnishtop, 并varnishhist给我非常高级(或低级)的概述,但我正在寻找可以告诉我以下内容的内容:

  • 当前正在进行哪些请求(以及他们已经这样多久了,他们被发送到哪里,诸如此类)
  • 后端、虚拟主机之类的请求的平均服务时间
  • 其他可以帮助我识别行为不端的后端、虚拟主机等的东西。

varnish reverse-proxy

6
推荐指数
1
解决办法
3384
查看次数

我应该使用 Varnish 作为前端在 Apache 后端启用 KeepAlive 吗?

我在 Web 服务器上使用 Varnish 作为前端,Apache 2 作为后端。KeepAlive在这种情况下,Apache 的优缺点是什么?

Apache 和 Varnish 现在在同一台服务器上运行,但我将来可以将它们放在不同的服务器上。

varnish apache-2.2

6
推荐指数
1
解决办法
4954
查看次数

在 Varnish/Nginx 服务器上部署我的 node.js 应用程序的最佳方式

我即将部署一个全新的 node.js 应用程序,我需要一些帮助来设置它。

我现在的设置方式如下。

我有清漆运行 external_ip:80

我有 Nginx 在运行 internal_ip:80

两者都在侦听端口 80,一个内部端口,一个外部端口。

注意:node.js 应用程序在WebSockets 上运行

现在我有了我的新 node.js 应用程序,它将侦听端口 8080。

我可以在 nginx 和 node.js 前面设置清漆吗?

Varnish 必须将 websocket 代理到端口 8080,但是诸如 css、js 等静态文件必须通过端口 80 到达 nignx。

Nginx 不支持开箱即用的 websockets,否则我会这样设置:

清漆 -> nignx -> node.js

nginx varnish node.js

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

清漆配置规则来缓存大型 MP3 和 PDF 文件?

我们的网站有许多大型 PDF 和 MP3 文件,我们希望将它们作为静态文件缓存在 Varnish 中。目前我们没有做太多特别的事情 - 只需删除vcl_recvset resetp.ttl = 100w;中的 cookie vcl_fetch

问题似乎是当这些文件之一被请求时(可能是旧浏览器)并且它不在 Varnish 缓存中。Varnish 从后端下载文件时会出现延迟。我的理解是在数据完全加载之前它不会开始交付给客户端。这可能需要 20 秒左右,有时 Adob​​e Acrobat 或 MP3 插件会混淆。

有没有办法既pass将内容直接而下载为下一个匹配的客户端请求,将它保存在缓存中?

varnish streaming

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

如何提高清漆吞吐量?

有时在繁忙的 Pressflow 站点上,我注意到未经身份验证的用户超时,而服务器的端口远未饱和,有大量未使用的内存并且服务器负载非常低。

除此之外,自从我迁移到具有新配置的新 Varnish 服务器后,站点的带宽使用量下降了大约 30%。因此我怀疑下降可能是因为 Varnish 的错误配置。

以下是一些相关参数:

DAEMON_OPTS="-a :80 \
              -T localhost:6082 \
              -b localhost:8080 \
              -u varnish -g varnish \
              -S /etc/varnish/secret \
               -p thread_pools=14 \
               -p thread_pool_min=200  \
               -p thread_pool_max=5000 \
               -p listen_depth=128 \
               -p thread_pool_add_delay=2\
               -p lru_interval=20 \
               -h classic,72227  \
               -p session_linger=120 \
               -p sess_workspace=32768 \
               -p connect_timeout=600 \
               -s malloc,15G"
Run Code Online (Sandbox Code Playgroud)

# 这是 varnishstat 的最新输出:

1+21:07:54 
Hitrate ratio:       10       13       13
Hitrate avg:     0.8405   0.8408   0.8408

    21003013       158.92       129.32 Client connections accepted
    35390015 …
Run Code Online (Sandbox Code Playgroud)

performance varnish

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

清漆无法启动。运行 VCC-compiler 失败,没有编译器错误

编辑:系统磁盘空间不足,因此编译器无法创建文件。varnishd 的输出不会告诉你这一点。

如果您在没有明显原因的情况下出现奇怪的错误,请务必检查您的磁盘配额:)

将在 6 小时后回答我自己。

我正在运行由主管控制的清漆。

清漆运行缓慢,当我使用主管重新启动清漆时没有进行任何更改。

但是重启失败,手动执行后 sbin/varnishd -F -f etc/varnish/ourconfig.vcl -a localhost -p thread_pool_min=10 -p thread_pool_max=50 -s malloc,250M

我收到以下错误

运行 VCC 编译器失败,退出 1

VCL 编译失败

而已。

这是我们的 vcl 文件:

backend default {
    .host = "127.0.0.1";
    .port = "8002";
    .first_byte_timeout = 300s;
}

sub vcl_recv {
     if (req.request == "BAN") {
        ban("obj.http.X-Keywords ~ " + req.http.X-Ban-Keywords);
     }

     if (req.request != "GET" && req.request != "HEAD") {
        return (pass);
     }

     // Remove has_js and Google Analytics __* cookies.
     set …
Run Code Online (Sandbox Code Playgroud)

varnish failed

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

整整 60 秒后清漆 503 错误...如何更改此超时值?

我在 Drupal 站点上通过 Apache 运行 Varnish。我有一个 PHP 脚本,它在我网站的某个路径上执行,需要很长时间……比如 60 - 120 秒。尝试访问该页面时,Varnish 总是在 60 秒后给我 503 大师冥想超时。

我已经尝试将 Varnish connect_timeout 设置为一个非常高的值......我已经尝试将 Apache 的 php.ini 中的所有超时设置为非常高的值......但没有运气:Varnish 在 60 秒后一直给我 503 错误.

所以这是我的问题:这个 60 秒超时值来自哪里?我在这里拔头发...

(仅供参考:如果我从图片中取出 Varnish,Apache 在 60 - 120 秒后按预期提供页面,这让我认为超时必须在 Varnish 一侧的某个地方......)。

php timeout varnish drupal apache-2.2

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

如何通过负载平衡同步 2 个 Web 服务器文件?

我需要设置一个具有负载平衡的网站以容纳更多访问者,

我在论坛上看到 varnish(balance)->apache(web1&2)->mysql(dbserver) 是可行的方法。

我知道如何设置 varnish->single webserver->mysql 但不知道如何设置两个 web 服务器来平衡,

但是我怎样才能实时同步两个网络服务器内容呢?我的自定义应用程序允许访问者发布文件。

请告诉我如何配置这个?

我的设置。

        (internet)
             |
  (load balance server)
            / \ 
           /   \
 (webserver1) (webserver2)
          \     /
     (database server)
Run Code Online (Sandbox Code Playgroud)

谢谢。

mysql varnish load-balancing apache-2.2

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

Varnish 前面的 Nginx 有时会产生“从上游读取响应头时上游过早关闭连接”错误

我在同一台服务器上的 Varnish(4.1.0) 前面有 Nginx(1.9.9)。

//nginx
upstream varnish {
    server 127.0.0.1:8391;
    keepalive 16;
}

location ~ \.php$ {
     proxy_pass http://varnish;
     proxy_http_version 1.1; #for 1.0 varnish shows blank page
     proxy_set_header Connection "";
     proxy_redirect off;

     proxy_set_header Host $host:$server_port;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;

     proxy_read_timeout 600;
     proxy_send_timeout 600;
     proxy_connect_timeout 600;
}

//varnish
DAEMON_OPTS="-a :8391 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,1024m"
Run Code Online (Sandbox Code Playgroud)

对于 0.001% 的请求,nginx 显示错误:

[error] 5331#5331: *7392847 upstream prematurely closed connection while reading response header from upstream, …
Run Code Online (Sandbox Code Playgroud)

nginx varnish

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

Apache 中的间歇性代理错误:“部分结果有效,但处理不完整”,并显示“AH01110:读取响应时出错”

我在 CentOS 7.8 上使用 Apache 2.4.43 以及 Varnish 6 和 PHP-FPM 来为 Magento 2 网站提供服务。

Varnish 侦听端口 80。Apache 侦听 8080 以向 Varnish 提供内容,并且还侦听端口 443,该端口将 HTTPS 请求代理到 Varnish,如下所示:

ProxyPreserveHost On
ProxyPass         / http://127.0.0.1:80/
RequestHeader     set X-Forwarded-Port  "443"
RequestHeader     set X-Forwarded-Proto "https"
Run Code Online (Sandbox Code Playgroud)

这适用于大多数请求,但偶尔(约 10% 的请求)我会收到来自 Varnish 和 Apache 的 503 响应。我在 Apache 日志中看到的唯一错误是:

[proxy_http:error] [pid 6719:tid 140054596265728] (70008)Partial results are valid but processing is incomplete: [client x.x.x.x:53760] AH01110: error reading response, referer: http://example.com
Run Code Online (Sandbox Code Playgroud)

如果我重试该请求,它通常会立即起作用,尽管有时我必须刷新几次才能满足请求。我注意到,当发出大批量请求时(即包含数百个外部资源的页面),这种情况会更频繁地发生。我还注意到,这种情况似乎发生在较大的文件上,而不是较小的文件上。

我猜测这可能是某种超时,但我不确定要调整哪些值或如何进一步调试它。

我尝试过的事情包括以下内容:

  • 这个答案涉及更改我不使用的模块(Forge Rock OpenAm)。 …

proxy varnish reverse-proxy mod-proxy apache-2.4

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